Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Git ΠΈ командная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° (для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²) / Π₯Π°Π±Ρ€

Π‘ΠΎΠ°Π²Ρ‚ΠΎΡ€ ΡΡ‚Π°Ρ‚ΡŒΠΈ: RicardoMilos

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅


ΠŸΡ€ΠΈΠ²Π΅Ρ‚! Если Ρ‚Ρ‹ сюда зашСл, Π·Π½Π°Ρ‡ΠΈΡ‚ тСбя заинтСрСсовал вопрос, ΠΊΠ°ΠΊ программисты Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅. Если Π΄ΠΎ этого Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² соло, Ρ‚ΠΎ Ρ‚Π΅Π±Π΅, Π½Π°Π²Π΅Ρ€Π½ΠΎ, каТСтся, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅, вСдь большС Ρ€ΡƒΠΊ ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ. Но Π½Π΅ всС Ρ‚Π°ΠΊ просто. БСйчас ΠΌΡ‹ с Ρ‚ΠΎΠ±ΠΎΠΉ ознакомимся, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΈΡ… инструмСнтов вСдСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Ρ‡Ρ‚ΠΎ происходит Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

GIT


НавСрняка Π²Π°ΠΌ Π·Π½Π°ΠΊΠΎΠΌΠ° такая ситуация:

Π Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ вСрсионности. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ такая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° встрСчаСтся Ρƒ творчСских людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ постоянно всС ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Ρ‹Π²Π°ΡŽΡ‚ ΠΈ Π΄ΠΎΠ±ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠ΄Π΅Π°Π»Π°. К соТалСнию, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‚ΠΎΠΆΠ΅ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всСгда всС получаСтся с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ€Π°Π·Π°. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ: Π²Ρ‹ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ кусок ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π» Ρ‡ΡƒΡ‚ΡŒ-Ρ‡ΡƒΡ‚ΡŒ быстрСС. Π’Ρ‹ пСрСписываСтС, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚Π΅, запускаСтС ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅. ВсС сломалось.

И Ρ‚ΡƒΡ‚ Π²Ρ‹ осознаСтС, Ρ‡Ρ‚ΠΎ Π½Π΅ сохранили Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Z Π½Π° вашСй ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ сломалась, поэтому Π²Ρ‹ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΡΠΏΠ°ΠΌΠΈΡ‚ΡŒ ctrl+z. Π’ ΠΏΠΎΡ€Ρ‹Π²Π΅ ярости Π²Ρ‹ ΠΏΡ€ΠΎΠ±ΠΈΠ²Π°Π΅Ρ‚Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ своСй Π½Π°ΠΊΠ°Ρ‡Π°Π½Π½ΠΎΠΉ ΠΏΡ€Π°Π²ΠΎΠΉ Ρ€ΡƒΠΊΠΎΠΉ. Π’Π΅Ρ‡Π΅Ρ€ΠΎΠΌ Π²Ρ‹ ΠΏΠ»Π°Ρ‡Π΅Ρ‚Π΅, ΡƒΠΊΡƒΡ‚Π°Π²ΡˆΠΈΡΡŒ Π² ΠΏΠ»Π΅Π΄ΠΈΠΊ, ΠΈ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅ ΠΎ тяТСлой участи программистов.

ΠŸΠ»Π°Ρ‡Π΅Π²Π½Π°Ρ ситуация… И Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½Π΅ происходило, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ вСрсии своСго ΠΊΠΎΠ΄Π°.

Ну программисты β€” люди ΡƒΠΌΠ½Ρ‹Π΅, ΠΈ ΠΎΠ½ΠΈ прСкрасно поняли, Ρ‡Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС вСрсии Π² Π²ΠΈΠ΄Π΅ ΠΊΡƒΡ‡ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² максимально Π½Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ срочно ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ вСрсий ΠΈ Ρ‚Π΅ΠΌ самым Ρ€Π΅ΡˆΠΈΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ вСрсионности.

И Ρ‚ΡƒΡ‚ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ провСсти аналогию с ΠΈΠ³Ρ€Π°ΠΌΠΈ. ΠŸΠΎΡ‡Ρ‚ΠΈ Π²ΠΎ всСх ААА ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π΅ΡΡ‚ΡŒ систСма сохранСний. Как наглядный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ привСсти ΠΈΠ³Ρ€Ρƒ Papers Please.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ всС систСмы контроля вСрсий.

Version Control System (VCS) β€” систСма, Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ измСнСния Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ большого ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ вСрсии.

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Π‘ΠšΠ’:

  1. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅
  2. Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅
  3. РаспрСдСлСнныС

Π‘ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π‘ΠšΠ’ ΠΌΡ‹ ΡƒΠΆΠ΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ (это Ρ‚Π΅ самыС ΠΊΡƒΡ‡ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²)

Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π‘ΠšΠ’


  • Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр
    всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠ΄ вСрсионным ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ
  • ряд ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²
    ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΊΠΎΠΏΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

РаспрСдСлСнныС Π‘ΠšΠ’


  1. ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ вСсь Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
  2. Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° прСдоставлСниС основной ΠΊΠΎΠΏΠΈΠΈ
  3. Бинхронизация ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ
    • Π‘ сСрвСром
    • Π‘ Π»ΡŽΠ±Ρ‹ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ


ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Π° Π‘ΠšΠ’


  1. Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  2. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Β«Π½Π° Π»ΡŽΠ±ΡƒΡŽ ΡΡ‚Π°Π΄ΠΈΡŽ развития ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Β»
  3. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ вСсти ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ
  4. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ

GIT


Git β€” распрСдСлённая систСма контроля вСрсий
Автор: Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ
2005 β€” пСрвая вСрсия

Установка:

Linux: sudo apt install git
Windows/macOS: ссылка

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ:

  • GNU/Linux
  • Android
  • Wine
  • Google
  • Chromium
  • jQuery
  • PHP
  • MediaWiki
  • Qt

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ понятия


Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ (repository, repo) β€” мСсто, Π³Π΄Π΅ Π‘ΠšΠ’ Ρ…Ρ€Π°Π½ΠΈΡ‚ свои ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (working directory) β€” извлСчённая ΠΈΠ· рСпозитория копия ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ вСрсии ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
ΠžΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (staged area) β€” слуТСбный Ρ„Π°ΠΉΠ», содСрТащий ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠΉΡ‚ΠΈ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ€Π΅Π²ΠΈΠ·ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
РСвизия (revision) β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, хранящий ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (вСрсия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°)
ΠšΠΎΠΌΠΌΠΈΡ‚ (commit) β€” созданиС Π½ΠΎΠ²ΠΎΠΉ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ

Настройка ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ GIT


Настройка ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
git config --global user.name "Your Name" 
git config --global user.email [email protected]

Настройки ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² скрытый Ρ„Π°ΠΉΠ» .gitconfig (Π² домашнСй Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ)
[user] 
name = John Doe 
email = [email protected]

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ рСпозитория
mkdir first_git_repo 
cd first_git_repo 
git init

Бостояния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°


  1. Зафиксированный
    Ρ„Π°ΠΉΠ» ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ
  2. Π˜Π·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ
    Ρ„Π°ΠΉΠ» отличаСтся ΠΏΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΡŽ ΠΎΡ‚ своСго зафиксированного состояния
  3. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ
    ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ станСт зафиксированным послС создания Π½ΠΎΠ²ΠΎΠΉ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ (этот Ρ„Π°ΠΉΠ» ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚ Π² эту Ρ€Π΅Π²ΠΈΠ·ΠΈΡŽ)

Π Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠ΄ΠΎΠΌ



  1. ИзмСнСниС Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅: созданиС / ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ / Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²
    Π’ любой IDE
  2. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ состояния
    git status
  3. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² индСкс
    (ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π² состояниС Staged)
    git add ΠΈΠΌΠ΅Π½Π°_Ρ„Π°ΠΉΠ»ΠΎΠ²_Ρ‡Π΅Ρ€Π΅Π·_ΠΏΡ€ΠΎΠ±Π΅Π»
  4. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ (ΠΈΠ· Staged Π² Repo)
    git commit -m "ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ"

Π‘ΡƒΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ


Π Π°Π±ΠΎΡ‚Π° с Π‘ΠšΠ’


Π§Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ?

[+] ВсС Ρ„Π°ΠΉΠ»Ρ‹ исходного ΠΊΠΎΠ΄Π°
[+] ВсС рСсурсы, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для компиляции
[+] настройки компиляции ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
[-] настройки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² IDE
[-] Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈΠ· исходников
[-] исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹

УдалСниС из индСкса

git rm имя_Ρ„Π°ΠΉΠ»Π°

ΠšΠΎΠΌΠΌΠΈΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ измСнСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²

Когда Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚?

  • Когда Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ» ΠΌΠ°Π»Π΅Π½ΡŒΡˆΡƒΡŽ Π·Π°Π΄Π°Ρ‡ΠΊΡƒ
  • Если Π·Π°Π΄Π°Ρ‡ΠΊΠ° большая β€” Π΄Π΅Π»ΠΈΠΌ Π½Π° логичСскиС подчасти
  • Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ состоянии!

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории
git log
git log --graph

НомСр Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ = SHA-1 Ρ…ΡΡˆ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π΅Π²ΠΈΠ·ΠΈΡŽ

git checkout sha1_hash 
git checkout ΠΏΠ΅Ρ€Π²Ρ‹Π΅_8_Ρ†ΠΈΡ„Ρ€_sha1

Π’Π΅Ρ‚ΠΊΠΈ


Π’Π΅Ρ‚ΠΊΠ° (Π°Π½Π³Π». branch) β€” это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ вСдётся ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°

Основная Π²Π΅Ρ‚ΠΊΠ° – master

Π’Π΅Ρ‚ΠΊΠΈ Π² GIT

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всС Π²Π΅Ρ‚ΠΊΠΈ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΈ

git branch

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ

git branch имя

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ

git checkout имя
На этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ нСсохранённых ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π½Π΅Ρ‘

git checkout -b имя

БлияниС Π²Π΅Ρ‚ΠΎΠΊ

ОбъСдинСниС Π²Π΅Ρ‚ΠΎΠΊ (Π°Π½Π³Π». merge) β€” процСсс ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²) ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ:

b1 β€” Π²Π΅Ρ‚ΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ добавляСм измСнСния
b2 β€” Π²Π΅Ρ‚ΠΊΠ° ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ добавляСм измСнСния

git checkout b1 
git merge b2

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории


ΠžΠΊΠΎΠ½Π½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹:
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ

git branch –d имя_Π²Π΅Ρ‚ΠΊΠΈ

Π£Π”ΠΠ›Π˜Π’Π¬ Π²Π΅Ρ‚ΠΊΡƒ

git branch –D имя_Π²Π΅Ρ‚ΠΊΠΈ

А Ρ‚ΠΎΡ‡Π½Π΅Π΅, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ, Π½Π΅ доТидаясь пСрСмСщСния ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² master

Π‘ΡƒΡ„Π΅Ρ€ нСсохранСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ


Или Β«Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π½ΠΎ?Β»

Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ измСнСния Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€

git stash

Π˜Π·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° эти измСнСния

git stash pop

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки:

git-scm.com/book/ru/v2
githowto.com/ru
ru.wikipedia.org/wiki/БистСма_управлСния_вСрсиями

Командная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°


Π˜Ρ‚Π°ΠΊ, Ссли Ρ‚Ρ‹ добрался Π΄ΠΎ этой строчки, Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‚Ρ‹ хотя Π±Ρ‹ Ρ‡ΡƒΡ‚ΡŒ-Ρ‡ΡƒΡ‚ΡŒ разобрался с git’ом (ΠΎΡ‡Π΅Π½ΡŒ Π½Π° это надСюсь). Но Ρ‡Ρ‚ΠΎ ΠΆΠ΅ насчСт ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ? Π”Π°Π²Π°ΠΉ рассмотрим этот вопрос ΠΏΠΎΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

НСбольшая ΡŽΠΌΠΎΡ€ΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Π·Π°Π΄Π°Ρ‡ΠΊΠ°:

Π”Π°Π½ΠΎ:

  • N Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²
  • Π Π°Π±ΠΎΡ‡ΠΈΠ΅ мСста
  • ВСхничСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅ (Π’Π—)
  • Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚

Вопрос:
  • Как Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ привлСкая Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ санитаров?

ΠžΡ‚Π²Π΅Ρ‚:
  • БлаТСнная ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈ ΡƒΠΏΠΎΡ€Π½Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄

Π₯ΠΌ, Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°? Π§Ρ‚ΠΎ ΠΎΠ½Π° ΠΈΠ· сСбя прСдставляСт?

Команда – это нСбольшоС количСство людСй:

  • с Π²Π·Π°ΠΈΠΌΠΎΠ΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΌΠΈ умСниями (ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅Ρ‚, ΠΊΡ‚ΠΎ-Ρ‚ΠΎ занимаСтся Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ ΠΈ Ρ‚.Π΄.)
  • стрСмящимся ΠΊ ΠΎΠ±Ρ‰ΠΈΠΌ цСлям (ΠΈΠΌ всСм Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ самоудовлСтворСниС)
  • Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° достиТСниС Ρ†Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Ссли Π²Π΄Ρ€ΡƒΠ³ Ρƒ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΈΠ· участников ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡΡ‚ΡŒ с Π΅Π³ΠΎ Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π’Π—, Ρ‚ΠΎ Π΅Π³ΠΎ Π½Π°ΠΏΠ°Ρ€Π½ΠΈΠΊΠΈ всСгда ΠΏΡ€ΠΈΠ΄ΡƒΡ‚ Π΅ΠΌΡƒ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ (этим Π½Π΅ стоит Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ, ΠΈΠ½Π°Ρ‡Π΅ Π²Ρ‹ просто ΠΎΠΊΠ°ΠΆΠ΅Ρ‚Π΅ΡΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌ для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹)).

ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎ ΠΈ ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ Π»Π°Π΄ΠΈΡ‚ΡŒ со всСм ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΌ, ΠΈΠ½Π°Ρ‡Π΅ всС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΉΡ‚ΠΈ Π½Π΅ ΠΏΠΎ ΠΏΠ»Π°Π½Ρƒ.

Π’Π°ΠΊ-с, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Π΅Π±Π΅ понятно, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°. Но ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ вопрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² Ρ‚Π²ΠΎΠ΅ΠΉ Π³ΠΎΠ»ΠΎΠ²Π΅ (Π΄Π°, Π΄Π°, Π°Π²Ρ‚ΠΎΡ€Ρ‹ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΡƒΠΌΠ΅ΡŽΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ мысли): «А ΠΊΡ‚ΠΎ Π·Π° Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅? Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Β«Π΅ΡΡ‚ΡŒ своС мСсто»? Или всС Π΄Π΅Π»Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ захотят?Β».

ЕстСствСнно, Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ участника Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π΅ΡΡ‚ΡŒ своя Ρ€ΠΎΠ»ΡŒ ΠΈ свои Π·Π°Π΄Π°Ρ‡ΠΈ. Π’Π΅Π΄ΡŒ ΠΈΠ½Π°Ρ‡Π΅ вмСсто Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π±Ρ‹Π» Π±Ρ‹ хаос. Π”Π°Π²Π°ΠΉ рассмотрим, ΠΊΠ°ΠΊΠΈΠ΅ Ρ€ΠΎΠ»ΠΈ Π΅ΡΡ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ:

  1. Team Leader:

    Team Leader β€” это Π½Π΅Ρ‡Ρ‚ΠΎ срСднСС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ ΠΈ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅Ρ€ΠΎΠΌ.

    На ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ lead Ρ€ΠΎΠ»ΠΈ: мСнСдТСрская β€” PM, ΠΈ тСхничСская β€” System Architect. Π’ΠΈΠΌΠ»ΠΈΠ΄ отчасти выполняСт ΠΎΠ±Π΅ Ρ€ΠΎΠ»ΠΈ, Π½ΠΎ Π°ΠΊΡ†Π΅Π½Ρ‚ Π΅Π³ΠΎ обязанностСй Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π° ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ‚ (Π°ΠΊΡ†Π΅Π½Ρ‚ Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ β€” это tech lead).

    Β«ΠžΠ±ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΌΠ»ΠΈΠ΄Π° #1: Π·Π°Π±ΠΎΡ‚Π° ΠΎ своСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅. Команда Π΄ΠΎΠ»ΠΆΠ½Π° Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎ Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… условиях ΠΈ Π±Ρ‹Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΌΠΎΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚ΠΈΠΌΠ»ΠΈΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½Ρ‹ΠΉ рост своих рСбят, рСгулярно ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ бСсСды Π½Π° Ρ‚Π΅ΠΌΡƒ, ΠΊΡƒΠ΄Π° людям интСрСсно Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ, ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠΌ Π² этом».

    Под ΡƒΠΏΡ€Π°Π²Π»Π΅Π½Ρ‡Π΅ΡΠΊΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Ρ‚ΠΈΠΌΠ»ΠΈΠ΄Π° ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ обязанности, ΠΊΠ°ΠΊ собствСнно ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ‚, распрСдСлСниС ΠΈ Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡, всСвозмоТныС ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΈ составлСниС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ состояния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΈΡ‚ΠΈΠ½Π³ΠΈ, ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ с Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΎΠΌ, руководством ΠΈ всСми Ρ‡Π»Π΅Π½Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, тСстировщиками, ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°ΠΌΠΈ).

    Под Ρ‚Π΅Ρ…Π½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€ΠΎΠ»ΡŒ: участиС Π² написании тСхничСской Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π²Ρ‹Π±ΠΎΡ€ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, R&D, code review, ΠΌΠ΅Π½Ρ‚ΠΎΡ€ΠΈΠ½Π³ Π΄ΠΆΡƒΠ½ΠΈΠΎΡ€ΠΎΠ², ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ тСхничСских собСсСдований, Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠ΅ Π²ΠΎΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс, ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° Ρ‚Π΅Ρ…Π½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

    Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ дСнь Ρ‚ΠΈΠΌΠ»ΠΈΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя:

    • рассмотрСниС Π½ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΈ ΠΈΡ… распрСдСлСниС
    • стСндап с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
    • ΠΌΠΈΡ‚ΠΈΠ½Π³ΠΈ
    • ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
    • Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ вопросы
    • code review
  2. Project manager:

    Project Manager β€” это спСциалист, Ρ‡ΡŒΠ΅ΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ являСтся ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Π² Ρ†Π΅Π»ΠΎΠΌ: ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ расстановка ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ², ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ выполнСния Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ, ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

    Основная ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ PM β€” довСсти идСю Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ° Π΄ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² установлСнный срок, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ рСсурсы. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… этой Π·Π°Π΄Π°Ρ‡ΠΈ PM’у Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ»Π°Π½ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ процСсс Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΈ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΎΠΌ, ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ…ΠΈ для ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ качСство ΠΈ поставку ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π² срок.

    Π—Π°Π΄Π°Ρ‡ΠΈ PM’а ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ тактичСскиС ΠΈ стратСгичСскиС. ВактичСскиС β€” это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΄Π½Π΅Π²Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, устранСниС прСпятствий с ΠΏΡƒΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. БтратСгичСскиС Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ Ρ†Π΅Π»ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΡƒΡ‚ΡŒ ΠΊ Π½Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ пСрСдвиТСния.

    «Главная постановка Π·Π°Π΄Π°Ρ‡ΠΈ для PM’а: β€žΠΠ°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎβ€œ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° прСдоставит Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Π΅ сроки с Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ качСства».

  3. ВСстировщик:

    ВСстировщик β€” это спСциалист, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ занимаСтся тСстированиСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° с Ρ†Π΅Π»ΡŒΡŽ выявлСния ошибок Π² Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈ ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ исправлСния.

    Π“Π»Π°Π²Π½Ρ‹Π΅ долТностныС обязанности тСстировщика:

    • ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ качСства Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ².
    • ВыявлСниС ΠΈ Π°Π½Π°Π»ΠΈΠ· ошибок ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌΠΈ.
    • Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° автотСстов ΠΈ ΠΈΡ… рСгулярный ΠΏΡ€ΠΎΠ³ΠΎΠ½.
    • Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сцСнариСв тСстирования.
    • Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΎΠ².
  4. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ:
    • Junior:
      Junior – Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ уровня.

      ΠŸΡ€ΠΎΠΉΠ΄Ρ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ‚ΡƒΡ€Ρƒ, Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ прСвращаСтся Π² ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΆΡƒΠ½Π°. ОсновноС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ Π½Π΅ΠΌΡƒ β€” ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ тСхничСскиС Π·Π°Π΄Π°Ρ‡ΠΈ. Если Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ выстроСна Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Π΅Π· Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ кусок Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ прилоТСния. Π₯отя Junior ΠΌΠΎΠΆΠ΅Ρ‚ врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡˆΠΈΠ±Π°Ρ‚ΡŒΡΡ, Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ нюансов, ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ с Ρ‚ΠΈΠΌΠ»ΠΈΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ вмСстС с Π½ΠΈΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄.

      НуТно ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΈΠ½ΡŒΠΎΡ€ Ρ€Π΅ΡˆΠΈΡ‚ Π·Π° Π΄Π΅ΡΡΡ‚ΡŒ ΠΌΠΈΠ½ΡƒΡ‚, Π΄ΠΆΡƒΠ½Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Ρ€ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΏΠΎ часу ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ, Π° Π² процСссС ΠΊΠΎΠ΄ придСтся ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, Π·Π°Ρ‚Ρ€Π°Ρ‚ΠΈΠ² массу Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ энСргии. Π’Π°ΠΆΠ½ΠΎ Π½Π΅ Π±ΠΎΡΡ‚ΡŒΡΡ этого ΠΈ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ баланс: ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ΄Π½Π°ΠΆΠ°Ρ‚ΡŒ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π² Ρ€Π΅ΡˆΠΈΡ‚ΡŒ-Ρ‚Π°ΠΊΠΈ Π·Π°Π΄Π°Ρ‡Ρƒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π° ΠΊΠΎΠ³Π΄Π°, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Ρ‚ΡŒ Π±ΠΈΡ‚ΡŒΡΡ Π»Π±ΠΎΠΌ ΠΎ стСну, сТигая ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΎΠ΅ врСмя, ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π·Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ. ΠžΠΏΡ€Π°Π²Π΄Ρ‹Π²Π°Ρ‚ΡŒ свою Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ„Ρ€Π°Π·ΠΎΠΉ «я ΠΆΠ΅ Π΅Ρ‰Π΅ Π΄ΠΆΡƒΠ½Β» β€” плохая идСя.

    • Middle:

      Middle – Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ срСднСго уровня.

      ОсновноС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ ΠΌΠΈΠ΄Π»-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ β€” ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ поставлСнныС ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠžΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ написано Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π΅, ΠΏΡ€Π°Π²Π΄Π°? Однако Π΅ΡΡ‚ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΉ нюанс β€” здСсь отсутствуСт слово «тСхничСскиС». Π’ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° Π½ΠΎΠ²ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ трСбования бизнСса ΠΈ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΡ… Π² тСхничСскиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

      Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

      1. Мидл-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ позволяСт Π³Π»ΡƒΠ±ΠΆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ, Π°, Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‚ΠΎΡ‡Π½Π΅Π΅ Π΅Π΅ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΠΈ качСствСннСС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Если трСбования Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ сцСнарий, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ Π½Π° это Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° этапС планирования. А Π½Π΅ ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Ρ‡Π½Π΅Ρ‚ Π²Π°Π»ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ любом нСстандартном дСйствии ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
      2. Мидл-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π·Π½Π°ΠΊΠΎΠΌ со стандартными шаблонами ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΡ€ΠΈ построСнии прилоТСния Π² своСй области, ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹, ΠΈ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ. Бтандартизация Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ большоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠΎΠ΄Π°, Ρ‚. ΠΊ. позволяСт Π½ΠΎΠ²ΠΎΠΌΡƒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ быстрСС Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΊ Ρ‡Π΅ΠΌΡƒ, ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ количСство ошибок. ПониманиС структуры Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠ³ΠΎ прилоТСния Π΄Π΅Π»Π°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ Π΅Π³ΠΎ построСния с нуля достаточно Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ, позволяСт Ρ€Π°ΡΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄ ΠΎΡ‚ ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ.
      3. Мидл-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ ΠΎΠ΄ΠΈΠ½. Он ΡƒΠΌΠ΅Π΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‡Π»Π΅Π½Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ слоТный ΠΌΠΎΠΌΠ΅Π½Ρ‚ с Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΎΠΌ, ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ Ρƒ бизнСс-Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° Π½Π΅ΠΏΠΎΠ»Π½Ρ‹Π΅ трСбования ΠΈΠ»ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ тСхничСскоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Ссли Ρ‚Π°ΠΊΠΎΠΉ Π΅ΡΡ‚ΡŒ) ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Π»Π°Π΄Π΅Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ инструмСнтами ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.
    • Senior:

      Senior – Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ высокого уровня, повидавший ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, набивший ΠΊΡƒΡ‡Ρƒ шишСк ΠΈ ΡΡƒΠΌΠ΅Π²ΡˆΠΈΠΉ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ· этого ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹. Основная Π·Π°Π΄Π°Ρ‡Π° ΡΠΈΠ½ΡŒΠΎΡ€Π° β€” ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ тСхнологичСскиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Β«ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅Β» β€” это Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приносят ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·Ρƒ бизнСсу ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ ΡΠΈΠ½ΡŒΠΎΡ€ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π½ΠΎ Π΄ΡƒΠΌΠ°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Разрабатывая ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΡƒ для Π°ΡƒΠΊΡ†ΠΈΠΎΠ½Π°, ΡΠΈΠ½ΡŒΠΎΡ€ всСгда задаСтся вопросом ΠΎ ΠΏΠΈΠΊΠΎΠ²ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΈ стараСтся ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠΉ записи Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π‘Π”. Он Π·Π°Ρ€Π°Π½Π΅Π΅ Π΄ΡƒΠΌΠ°Π΅Ρ‚ ΠΎΠ± ΡƒΠ·ΠΊΠΈΡ… мСстах систСмы, ΠΎ возмоТности Π΅Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠΌΠ½ΠΈΡ‚ ΠΎΠ± уязвимостях ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ…, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ использованиСм инструмСнтов.

      Π’Π°ΠΊΠΎΠΉ спСциалист Π΄Π΅Π»Π°Π΅Ρ‚ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‰ΡŒ β€” Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π΅Ρ‰Π΅ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ появились. Π‘ΠΎ стороны это Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π΄Π°Ρ€ прСдвидСния. А Π²ΠΎΡ‚ Ссли ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΆΠΈΠ²Π΅Ρ‚ ΠΎΡ‚ ΠΏΠΎΠΆΠ°Ρ€Π° Π΄ΠΎ ΠΏΠΎΠΆΠ°Ρ€Π°, Π° Π²Π°ΠΌ постоянно приходится Π²Ρ‹ΠΊΠΈΠ΄Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ куски ΠΊΠΎΠ΄Π° β€” это симптомы, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ нСдостаточно ΡΠΈΠ½ΡŒΠΎΡ€Π½ΠΎΠ³ΠΎ внимания.

  5. Π”ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€:

    Π”ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ – Ρ‚ΠΎΡ‚ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ занимаСтся Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ. Π›ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Π½Π΅ ΠΏΡ€Π°Π²Π΄Π° Π»ΠΈ?

    Π Π°Π±ΠΎΡ‚Π° Π΄ΠΈΠ·Π°ΠΈΜ†Π½Π΅Ρ€Π° начинаСтся Π·Π°Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ появляСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΈΜ† пиксСль, ΠΈ заканчиваСтся Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ послСднСго.

    Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ людСй ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½ β€” это собствСнно Π½Π°Π±ΠΎΡ€ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ, Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π²Π΅Ρ€ΡΡ‚Π°Π»ΡŒΡ‰ΠΈΠΊΠ°ΠΌ ΠΈ программистам, Ρ‡Ρ‚ΠΎΠ±Ρ‹ получился ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚. Иногда Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ срабатываСт, Π½ΠΎ Ρ‡Π°Ρ‰Π΅ получаСтся ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΌ стыдно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΠΎΡ€Ρ‚Ρ„ΠΎΠ»ΠΈΠΎ.

    Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ нСдостаточно Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ. Π’ процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ 4 шага. Π’ΠΎΡ‚ ΠΎΠ½ΠΈ:

    • ПониманиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

      Π Π°Π±ΠΎΡ‚Π° начинаСтся с понимания ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠ°ΠΊ Ρ‚Π΅Π°Ρ‚Ρ€ с вСшалки: ΠΏΠΎΠΊΠ° Π½Π΅ сдашь Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ ΠΎΠ΄Π΅ΠΆΠ΄Ρƒ, дальшС Π½Π΅ ΠΏΡ€ΠΎΠΉΠ΄Π΅ΡˆΡŒ. Если Π½Π΅ Π²Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, получится нСТизнСспособный ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚.

    • Поиск Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

      Когда ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° понятна, ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ врСмя ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π’ ΡƒΡΡ‚ΠΎΡΠ²ΡˆΠΈΡ…ΡΡ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… это всякиС наброски ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π²Ρ‹ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²ΠΈΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

    • ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅:

      Π­Ρ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ Π΅ΡΡ‚ΡŒ рисованиС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ ΠΈ ΠΏΠΎΠ΄Π±ΠΎΡ€ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ². МногиС Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ Ρ‚ΡƒΡ‚ ΠΆΠ΅ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Π°ΠΊΠΈΡ… Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… количСствах ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° Π”Ρ€ΠΈΠ±Π±Π»Π΅ ΠΈΠ»ΠΈ БСхэнсС.

    • БогласованиС:

      Π”Π°ΠΆΠ΅ Ссли Ρƒ вас Π² Π³ΠΎΠ»ΠΎΠ²Π΅ ΠΈ Π½Π° Π±ΡƒΠΌΠ°Π³Π΅ стройноС ΠΈ изящноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅. Если ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ этот этап ΠΈ просто ΠΎΡ‚Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚ΠΎ Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ случаС ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°ΡŽΡ‚ ΠΏΠΎ своСму Ρ€Π°Π·ΡƒΠΌΠ΅Π½ΠΈΡŽ. Π’ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅ останСтся послС ΠΏΡ€Π°Π²ΠΎΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ°Π»ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Π²Π°ΡˆΡƒ Ρ€Π°Π±ΠΎΡ‚Ρƒ.


Ну Π²ΠΎΡ‚, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ρ‚Ρ‹ Π·Π½Π°ΠΊΠΎΠΌ со всСми долТностями Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π—Π΄Π΅ΡΡŒ я пСрСчислил лишь Ρ‚Π΅ долТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ связанны с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Если Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π² качСствС бизнСс-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΌ добавятся Π΅Ρ‰Π΅ Ρ€ΠΎΠ»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±ΡƒΡ…Π³Π°Π»Ρ‚Π΅Ρ€Ρ‹, ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΎΠ»ΠΎΠ³ΠΈ ΠΈ Ρ‚.Π΄.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅


Π§Ρ‚ΠΎΠΆ, Ссли Ρ‚Ρ‹ Π΄ΠΎΡ‡ΠΈΡ‚Π°Π» Π΄ΠΎ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° – ΠΏΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ, Ρ‚Ρ‹ Π½Π΅Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΊΡ€ΡƒΡ‚! НСт, Π½Ρƒ ΠΏΡ€Π°Π²Π΄Π°, Ρƒ тСбя ΠΌΠΎΠ·Π³ Π΅Ρ‰Π΅ Π½Π΅ вскипСл ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ количСства ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ? НадСюсь, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚.

Π˜Ρ‚Π°ΠΊ, надСюсь, наша ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Ρ‚Π΅Π±Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π²ΠΎ всСх тонкостях ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. И Ρƒ тСбя Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… вопросов. И ΠΊΠΎΠ³Π΄Π° Ρ‚Ρ‹ ΠΏΡ€ΠΈΠ΄Π΅ΡˆΡŒ Π² супСр-ΠΏΡƒΠΏΠ΅Ρ€-Π½Π΅Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ-ΠΊΡ€ΡƒΡ‚ΡƒΡŽ-ΠΈ-ΠΈΠ·Π²Π΅ΡΡ‚Π½ΡƒΡŽ компанию ΠΈ тСбя ΠΏΡ€ΠΈΠΌΡƒΡ‚ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ (ΠΏΡƒΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΡŽΡ‚ Π½Π΅ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ), Ρ‚ΠΎ Ρ‚Ρ‹ Π½Π΅ Ρ€Π°ΡΡ‚Π΅Ρ€ΡΠ΅ΡˆΡŒΡΡ ΠΈ покаТСшь своСму Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΈΠΊΡƒ, ΠΊΡ‚ΠΎ Ρ‚ΡƒΡ‚ Π³Π»Π°Π²Π½Ρ‹ΠΉ программист. А ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ‹ ΠΈ свою компанию создашь, ΠΊΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚ πŸ˜‰

Бпасибо за вниманиС!

P.S.


Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π° ΡƒΡ‡Π΅Π½ΠΈΠΊΠ°ΠΌΠΈ МШП (Московская школа программистов), ΠΏΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°ΠΌ Π»Π΅ΠΊΡ†ΠΈΠΉ курса Β«ΠŸΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ΅ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β».
Π Π°Π±ΠΎΡ‚Π° с распрСдСлСнной систСмой контроля вСрсий Git Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ GitHub / Π₯Π°Π±Ρ€Π Π°Π±ΠΎΡ‚Π° с распрСдСлСнной систСмой контроля вСрсий Git Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ GitHub
Π“ΠΎΠ΄ Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ: 2019
Π“ΠΎΠ΄ окончания Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ: Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½

ВСорСтичСская Ρ‡Π°ΡΡ‚ΡŒ
ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ
Настройка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Git
Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ локального рСпозитория
Π Π°Π±ΠΎΡ‚Π° с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ
Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ваши Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
МодСли вСтвлСния Π² Git
Π’Ρ‹Π²ΠΎΠ΄Ρ‹
.gitignore. ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ использованию:

Данная публикация являСтся ΡƒΡ‡Π΅Π±Π½ΠΎΠΉ для освоСния основ систСмы контроля вСрсий git, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ использования GitHub. Π­Ρ‚ΠΎ Π½Π΅ руководство ΠΊ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ примСняя ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΈΠ΄Π΅ΠΈ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π² ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. НС ΡΠΏΠ΅ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ сказанноС ΠΊ вашим Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ΠŸΠΎΡ‚Ρ€Π΅Π½ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ Π½Π° Π½Π΅ΠΌ. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ свой ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° GitHub. Когда Π²Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹ смоТСтС ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ваши знания Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ Π½Π΅ являСтся ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ ΠΊΠ°ΠΊΠΎΠΉ Π»ΠΈΠ±ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π­Ρ‚ΠΎ авторская Ρ€Π°Π±ΠΎΡ‚Π° с Ρ†Π΅Π»ΡŒΡŽ ΠΏΡ€ΠΎΡΡΠ½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вопросы. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ смотритС Ρ€Π°Π·Π΄Π΅Π»: «ЦСль ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈΒ».

НСбольшая Ρ€Π΅ΠΌΠ°Ρ€ΠΊΠ°:
ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΉ вопрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдовало Π±Ρ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ β€” это Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ систСмы для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Если Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π°ΡˆΡƒ ΡΠ΅Ρ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ систСмный администратор. Π’ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ приходится эти вопросы Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.
Π­Ρ‚ΠΎΡ‚ вопрос Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΏΡ€Π°Π·Π΄Π½Ρ‹ΠΉ.

Π§Ρ‚ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:
Π›ΠΈΡˆΠ½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹, Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠ»ΡŽΡ‡ΠΈ ΠΊ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ, ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ(ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹ΠΌΠΈ сСрвисами ΠΈ систСмами Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠΈ Amazon). Π’ Π²Π΅Ρ‚ΠΊΠΈ master ΠΈ release Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ измСнСния ΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…, Π½Π΅ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… программистов ΠΈ нСкачСствСнный ΠΊΠΎΠ΄, Π½Π΅ ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΠΉ тСстированиС.

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ: Ρ‡Ρ‚ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒ Π² GitHub ΠΈ ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ .gitignore.

БистСма контроля вСрсий довольно слоТная ΡˆΡ‚ΡƒΠΊΠ°. Но ΠΏΡƒΡΡ‚ΡŒ вас это Π½Π΅ ΠΏΡƒΠ³Π°Π΅Ρ‚. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ. Π”Π°Ρ‚ΡŒ опрСдСлСния, ΠΈ внСсти ΡΡΠ½ΠΎΡΡ‚ΡŒ. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ ΠΎΠ΄ΠΈΠ½ Π½Π°Π΄ своим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Ρ‚ΠΎ Π²Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° сСрвСрС. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сСбС Git ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с систСмой контроля вСрсий локально. Π’Π°ΠΌ для локальной Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π°ΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ. Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ создаСтС локально β€” это фактичСски Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΊΠ°ΠΊ Π½Π° сСрвСрС, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π΅Π· возмоТности Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ распрСдСлСнной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². БистСма контроля вСрсий β€” ΠΏΠΎ сущСству это рСализация ΠΏΡ€Π°Π²Π° программиста Π½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² своСм ΠΊΠΎΠ΄Π΅. Как Π²Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ Β«Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ свойствСнно ΠΎΡˆΠΈΠ±Π°Ρ‚ΡŒΡΡΒ». Π’Π°ΠΊ Π²ΠΎΡ‚, ΠΎΡˆΠΈΠ±Π°Ρ‚ΡŒΡΡ программисту слСдуСт Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС. И, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ своСму ΠΊΠΎΠ΄Ρƒ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ сущСствуСт такая Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ систСма, ΠΊΠ°ΠΊ систСма контроля вСрсий. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ использованиС систСмы контроля вСрсий β€” это Π±ΠΎΠ»Π΅Π΅ эффСктивный ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ‚.

ΠžΡ‚Π²Π΅Ρ‚ΡŒΡ‚Π΅ Π½Π° вопрос: Π’ Ρ‡Π΅ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Ρ€Π°Π±ΠΎΡ‚Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΈ Π²Ρ‹ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅ насколько ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ становится Π±ΠΎΠ»Π΅Π΅ эффСктивным с систСмой контроля вСрсий. Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ прСимущСство: БистСма контроля вСрсий ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ процСсс Ρ€Π΅Π²ΡŒΡŽ(пСрСсмотра, Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ) ΠΊΠΎΠ΄Π°. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ прСимущСство: АвтоматичСскоС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ². Π’ΠΎ Π΅ΡΡ‚ΡŒ объСдинСниС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π·Π½Ρ‹Ρ… вСрсий ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², сдСланных Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Π² ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ‚ΠΊΡƒ. Π—Π΄Π΅ΡΡŒ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ я Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ для git Π² IDE. Π—Π΄Π΅ΡΡŒ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Ρ‰ΠΈΠ΅ вопросы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с git ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ Π½Π° GitHub.

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ вопросы:
Π’ Ρ‡Π΅ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ экономия Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΈ использовании систСмы контроля вСрсий?
Π’ Ρ‡Π΅ΠΌ прСимущСства использования систСмы контроля вСрсий?
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Git?
Как Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git?
Как Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GitHub?
ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅(Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅) ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Git.
КакиС сСрвисы ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ для Git?
Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ?
Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с распрСдСлСнным Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ?

Git-хостинг Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… условиях ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ.
Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ извСстныС ΠΈΠ· Π½ΠΈΡ…: Github, Sourceforge, Google Code, GitLab, Codebase ΠΈ Ρ‚Π΄.

БСрвисы git Π² порядкС популярности(Ρ‚ΡƒΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ Ρ…ΠΎΠ»ΠΈΠ²Π°Ρ€Π°, Π΄ΠΎΠΏΠΈΡˆΡƒ: По ΠΌΠΎΠ΅ΠΌΡƒ мнСнию):

1. Π’Π°Ρˆ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрвис, использованиС git Ρ‚ΠΎΠ»ΡŒΠΊΠΎ локально
2. GitHub
3. BitBucket
4. GitLab

ΠŸΡ€ΠΎ использованиС своСго git сСрвСра Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π° Ρ…Π°Π±Ρ€Π΅ >>>

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ я Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽ Π² основном Ρ€Π°Π±ΠΎΡ‚Ρƒ с сСрвисом GitHub.

ЦСль ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ: ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΎ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Git.

ΠžΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ консоли Git. Π₯отя Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ сущСствуСт довольно ΠΌΠ½ΠΎΠ³ΠΎ описаний Ρ€Π°Π±ΠΎΡ‚Ρ‹ с git, ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ опрСдСлСния раскрыты Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ. Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ввСсти Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Π² Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅. НСкоторыС опрСдСлСния слСдуСт Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, для ясности понимания.
Π’Π°ΠΊΠΆΠ΅ с практичСскими ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Π³Ρ‡Π΅ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ систСму. ЦСль ΡΡ‚Π°Ρ‚ΡŒΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСбольшой ΠΎΠ±Π·ΠΎΡ€ ΠΎ систСмС Git. ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, для Π±ΠΎΠ»Π΅Π΅ быстрого освоСния Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌΠΈ. ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ систСму для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ использования. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Ρ†Π΅Π»ΡŒ, ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π±Π΅Π·Π΄ΡƒΠΌΠ½ΠΎΠ΅ использованиС Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Git.

ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΈ основныС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹

БистСма контроля вСрсий β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для облСгчСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π΅ΠΉΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. БистСма управлСния вСрсиями позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ нСсколько вСрсий ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΏΡ€ΠΈ нСобходимости Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠΌ вСрсиям, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, ΠΊΡ‚ΠΎ ΠΈ ΠΊΠΎΠ³Π΄Π° сдСлал Ρ‚ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Git β€” ΠΎΠ΄Π½Π° ΠΈΠ· распрСдСлСнных систСм контроля вСрсий.
GitHub β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· сСрвисов для использования систСмы контроля вСрсий Git.

repository β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ², ссылок Π½Π° измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ…
commit β€” отслСТиваниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, сохраняСт Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² измСнСниях
HEAD β€” (ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ) символичСская ссылка Π½Π° послСдниС измСнСния. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: НС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ссылаСтся Π½Π° commit. ΠœΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π²Π΅Ρ‚Π²ΡŒ. БостояниС β€” Β«Detached HEADΒ»
HEAD ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ для опрСдСлСния Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ checkout.
ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° это Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅: Β«headΒ» (Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС) относится ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΈΠ· Π½Π°Π·Π²Π°Π½Π½Ρ‹Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅; Β«HEADΒ» (Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр) относится ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌΡƒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΡƒ(ссылкС). Π­Ρ‚ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Git. HEAD ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ Π½Π° commit.
ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Git. Π§Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²: Blob, Tree, Commit ΠΈ References.
Π’Π΅Ρ‚Π²ΡŒ опрСдСляСтся Π½Π΅ Π² самом Git, Π° наслСдуСтся ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСм.
Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… Git Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

git сСрвисы β€” сСрвисы ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ услуги для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ git.

HEAD β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. ВСкущая Π²Π΅Ρ‚ΠΊΠ°. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ: Π’Π°ΡˆΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ получаСтся ΠΈΠ· состояния Π΄Π΅Ρ€Π΅Π²Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ссылаСтся HEAD. HEAD β€” это ссылка Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π² вашСм Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ случаСв использования ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ HEAD, Π² этом случаС ΠΎΠ½ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ссылаСтся Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚
.

working directory β€” Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅
staging area β€” ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ рабочая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ
branch β€” Π²Π΅Ρ‚ΠΊΠ°, состоит ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ссылаСтся Π½Π° послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚
merge β€” слияниС, слияниС Π²Π΅Ρ‚ΠΎΠΊ Π² ΠΎΠ΄Π½Ρƒ
pull β€” Π²Ρ‚ΡΠ½ΡƒΡ‚ΡŒ, Π²Π·ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с сСрвСра, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ измСнСния ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория
push β€” Π²Ρ‹Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒ, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ измСнСния Π½Π° сСрвСр

Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹:
# β€” Π² Π΄Π°Π½Π½ΠΎΠΌ случаС символ коммСнтария
<> β€” ΡƒΠ³Π»ΠΎΠ²Ρ‹Π΅ скобки, Ρ‚Π°ΠΌ Π³Π΄Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ эти скобки
$ β€” ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π° Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅

НСбольшоС вступлСниС


Π₯ΠΎΡ‚Π΅Π» Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΡƒ ΠΏΠΎ git, Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ довольно длинная публикация.
Но Π±Π΅Π· объяснСния Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Π²ΠΎΠ΄Π½ΠΎΠΉ тСорСтичСской части Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ.

Git β€” ΠΎΠ΄Π½Π° ΠΈΠ· систСм контроля вСрсий.

ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π°, Π² основном, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ распрСдСлСнной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².
Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ†Π°Ρ… свСта ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ.
НСт Git ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Π½ΠΎ ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Ρ‹, писатСли, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΈ, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠΈ. GitHub часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ hr спСциалисты ΠΈ hr ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ для поиска ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² Π½Π° Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ вакасии Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… областях. Для матСматичСского Π°Π½Π°Π»ΠΈΠ·Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².
БистСма Git ΠΎΡ‡Π΅Π½ΡŒ экономична ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ рассылки большого количСства Ρ„Π°ΠΉΠ»ΠΎΠ². ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ ΠΏΠ΅Ρ€Π΅ΡΡ‹Π»Π°ΡŽΡ‚ΡΡ измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈ ссылки Π½Π° эти измСнСния. Π’ΠΎ Π΅ΡΡ‚ΡŒ основная рассылка это рассылка Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ Π² Π²Π°ΡˆΠΈΡ… рСдактированиях.

ΠžΡ‚ΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ различия Π² ΠΏΠ°ΠΏΠΊΠ°Ρ… ΠΈ Ρ„Π°ΠΉΠ»Π°Ρ…. Π’ любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ систСмы. МногиС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡƒΠ΄Π΅Π»ΡΡŽΡ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΈ быстрой ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ сотрудниками. Π’ этом ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ, систСма контроля вСрсий прСдоставляСт большиС возмоТности. Π’ΡΡŽ ΠΌΠΎΡ‰ΡŒ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ систСмы управлСния вСрсиями Π²Ρ‹ смоТСтС ΠΎΡ‰ΡƒΡ‚ΠΈΡ‚ΡŒ послС изучСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ тСорСтичСского ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΈ примСнСния Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ создания

Π¦ΠΈΡ‚Π°Ρ‚Π° ΠΈΠ· Π’ΠΈΠΊΠΈ:

Git (ΠΏΡ€ΠΎΠΈΠ·Π½oсится Β«Π³ΠΈΡ‚Β»[8]) β€” распрСдСлённая систСма управлСния вСрсиями. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» создан Линусом Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄ΡΠΎΠΌ для управлСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ядра Linux, пСрвая вСрсия Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° 7 апрСля 2005 Π³ΠΎΠ΄Π°. На сСгодняшний дСнь Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π”ΠΆΡƒΠ½ΠΈΠΎ Π₯Π°ΠΌΠ°Π½ΠΎ.

ВСорСтичСская Ρ‡Π°ΡΡ‚ΡŒ(ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ)

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» создан Линусом Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄ΡΠΎΠΌ для управлСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ядра Linux
Git свободная систСма ΠΈ распространяСтся ΠΎΠ½Π° ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GNU GPL 2.

Git is an Open Source project covered by the GNU General Public License version 2 (some parts of it are under different licenses, compatible with the GPLv2).

Основная Π·Π°Π΄Π°Ρ‡Π° систСмы ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрсий β€” это ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π΅ΠΉΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π“Π»Π°Π²Π½ΠΎΠΉ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠΎΠΉ систСмы управлСния вСрсий являСтся локализация Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π° своСй машинС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π’ случаС нСобходимости измСнСния ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ· локального рСпозитория Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. И любой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΠ· распрСдСлСнной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ измСнСния Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. Π’ΡƒΡ‚ я сдСлаю Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ€Π΅ΠΌΠ°Ρ€ΠΊΡƒ. Π’Π°ΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ стандарты ΠΏΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π° ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с систСмой Π² вашСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, экономят врСмя, ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅. НСкоторая этика ΠΈ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π° ΠΏΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°, ΠΏΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΡŽ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈ быстрСС ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°.

КакиС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ систСмы управлСния вСрсиями:
1. Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅
2. Π”Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅(распрСдСлСнныС)

Π’ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ систСмС управлСния вСрсий ΠΊΠΎΠ΄ хранится Π½Π° сСрвСрС. ВсС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ доступ ΠΊ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ. Однако ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ минусы Ρ‚Π°ΠΊΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π£ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π΅Ρ‚ своСго локального рСпозитория, Π° Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ копия Π΄Π°Π½Π½Ρ‹Ρ… с сСрвСра. Π’ случаС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· строя сСрвСра ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ смоТСт ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. Π’Ρ‚ΠΎΡ€ΠΎΠΉ минус использования Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ систСмы ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈ вСрсиями Π² слоТности досупа ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ рСсурсу ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ нСскольким Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ.

Π’ распрСдСлСнной систСмС управлСния вСрсий, ΠΊΡ€ΠΎΠΌΠ΅ вСрсии рСпозитория Π½Π° сСрвСрС, Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π΅ΡΡ‚ΡŒ свой Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π­Ρ‚ΠΎ позволяСт быстро Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ состояниС нашСго ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

ВзаимодСйствиС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ систСмами контроля вСрсий
Π’ стандартной поставкС Git поддСрТиваСтся взаимодСйствиС с CVS (ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΈ экспорт, эмуляция CVS-сСрвСра) ΠΈ Subversion (частичная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ экспорта). Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ инструмСнт ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ экспорта Π²Π½ΡƒΡ‚Ρ€ΠΈ экосистСмы β€” Π°Ρ€Ρ…ΠΈΠ²Ρ‹ сСрий вСрсионированных Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… .tar.gz ΠΈ .tar.bz2.
Fork – удалСнная копия рСпозитория Π½Π° сСрвСрС, отличная ΠΎΡ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°. Π­Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ git-концСпция, Π°, скорСС, ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎ-ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ идСя. Clone – это Π½Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ fork. Клон ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория располагаСтся локально. ЀактичСски ΠΏΡ€ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ всС Π΄Π°Π½Π½Ρ‹Π΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ.
Branch, ΠΈΠ»ΠΈ созданиС Π²Π΅Ρ‚ΠΊΠΈ, – это способ внСсти измСнСния Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΈΡ‚ΠΎΠ³Π΅ с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π’Π΅Ρ‚ΠΊΠ° являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ рСпозитория.
Π Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ (рабочая дирСктория, Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ пространство) – это Π΄Π΅Ρ€Π΅Π²ΠΎ исходных Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.
ИндСкс (ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², staging area) – это ΠΎΠ΄ΠΈΠ½ большой Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» .git/index, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ всС Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ, ΠΈΡ… SHA1, Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π°. Π­Ρ‚ΠΎ Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ дирСктория с копиями Ρ„Π°ΠΉΠ»ΠΎΠ².
Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ HEAD – это ссылка Π½Π° послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅.

НСкотороС отступлСниС ΠΎΡ‚ Ρ‚Π΅ΠΌΡ‹: Π—Π°Ρ‡Π΅ΠΌ я Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π» Ρ†ΠΈΡ‚Π°Ρ‚?
ΠžΡ‚Π²Π΅Ρ‚ самый простой. Π§Ρ‚ΠΎΠ±Ρ‹ Π² дальнСйшСм Π΄Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΈ ясныС опрСдСлСния.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ

Для использования систСмы git Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ:

1. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ git Π½Π° вашСй систСмС.
2. ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Ρ‘ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ локально
3. Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваш Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Π½Π° GitHub
4. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
5. ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» README.MD.
6. Π’ случаС, Ссли Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
7. Π€ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния локально
8. ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ измСнСния Π½Π° GitHub
9. Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
10. Π’Ρ‹Π΄Π°Ρ‚ΡŒ ΠΈΠΌ ссылку Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

1. Установка git

Π’ Linux:

sudo apt-get update && sudo apt-get upgrade #ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ установкой
sudo apt-get install git #установка git

Π’ Windows:
Git для Windjws >>>

1. ПослС установки Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΊΠΈ Π½Π° ΠΏΠ°ΠΏΠΊΠ΅ Π² ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ΅ Windows ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Β«Git Bash HereΒ». Git Bash Here β€” ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΡ‚Ρ€Ρ‹Ρ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» git здСсь.

Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

git --version #Π²Ρ‹Π²ΠΎΠ΄ вСрсии
ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ вашСго git.

Π’ Linux,(Ctrl+Alt+T β€” Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», Ссли Ρƒ вас Π½Π΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ горячиС клавиши) ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅

git --version

Π’ случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ установки Π½Π° консоль вывСдСтся вСрсия вашСго git.

2.Настройка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Git

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:
Π’ΡƒΡ‚ слСдуСт ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ настройку Git Π²Ρ‹ осущСствляСтС Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… уровнях.
Π’ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ настройки Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы(Π½Π΅ систСмы git, Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы). Π”Ρ€ΡƒΠ³ΠΈΠ΅ настройки Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Π”Π°Π»Π΅Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ настройки для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ(локально). Π’Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚ настройки для рСпозитория находящСгося Π½Π° сСрвСрС. Π­Ρ‚ΠΈ настройки Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ со своим Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ.
Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ я Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ консоли Π² основном Windows git-bash.
Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ± отличиях Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Упомяну Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ отличия. НапримСр Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈ ΠΏΠ°ΠΏΠΊΠ°ΠΌ. Π’ Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ / β€” слСш, Π° Π² Linux ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слСш \. Π₯отя Π² Windows Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π° использованиС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ слСша.

Настройка ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π΅ΠΌΠ΅ΠΉΠ»:

git config --global user.name "My Name"
git config --global user.email [email protected]

Π§Ρ‚ΠΎΠ±Ρ‹ ввСсти настройки Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ рСпозитория, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π΅Π³ΠΎ ΠΏΠ°ΠΏΠΊΡƒ ΠΈ сдСлайтС Ρ‚ΠΎ ΠΆΠ΅ Π±Π΅Π· —global:

Настройка внСшнСго Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°.

git config --global core.editor emacs  #ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ внСшний Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ emacs
#команда для Linux.
Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. НапримСр Π½Π΅ emacs, a vi ΠΈΠ»ΠΈ nano ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π° вашС усмотрСниС.

Π’ Windows, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ notepad++.

For x64 Windows change to: git config —global core.editor «‘C:/Program Files (x86)/Notepad++/notepad++.exe’ -multiInst -notabbar -nosession -noPlugin»

Для x64 Windows Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ(Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅ свой ΠΏΡƒΡ‚ΡŒ):

git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin" 

Настройки git хранятся Π² Ρ„Π°ΠΉΠ»Π°Ρ….

Git провСряСт 4 мСста для Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ(здСсь Π² Linux):
Π€Π°ΠΉΠ» вашСго ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° .gitconfig.
Π’Π°Ρˆ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ, Ρ„Π°ΠΉΠ» вашСго ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ .gitconfig Ρ„Π°ΠΉΠ» находится Π² ~/.gitconfig.
Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, располоТСнный Π² $ XDG_CONFIG_HOME/git/config ΠΈΠ»ΠΈ $HOME/.config/git/config.
ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» локального рСпозитория: .git/config

cat .git/config #просмотр ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ локального рСпозитория

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» добавляСт ΠΈΠ»ΠΈ пСрСопрСдСляСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ git, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ Π½Π°Π΄ Π½ΠΈΠΌ.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ систСмы.
ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ, спСцифичная для рСпозитория.

Бсылка Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ >>>

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ

#для систСмы ΠΈ всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

git config --system --list
git config --system --edit

#для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

git config --global --list
git config --global --edit

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° настроСк вашСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ git:

git config --list #вывСсти Π½Π° экран ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ.

Если список большой, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ»ΠΈΡΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стрСлок ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ Β«pg upΒ», Β«pg dnΒ». Для Π²Ρ‹Ρ…ΠΎΠ΄Π° клавиша q.

#какая конфигурация, Π³Π΄Π΅ установлСна:

git config --list --show-origin

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹? Π’Π΅Π΄ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ UI.
Часто Π² консоли Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Π²Ρ‹ сами Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ смоТСтС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс. ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ инструмСнт. ΠŸΠΎΡ‡Π΅ΠΌΡƒ? Π”Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ваш UI ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Β«Π½Π΅ Π·Π½Π°Ρ‚ΡŒΒ» ΠΎ сущСствовании Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. UI ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° сСрвСрС Π²Π²ΠΈΠ΄Ρƒ своСй нСбСзопасности. На ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π² ΠΎΠ±Ρ‰Π΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ систСма. ВсС ΠΈΡ… Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ Π½Π΅Ρ‚ нСобходимости. Π’Ρ‹ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ смоТСтС Π½Π°ΠΉΡ‚ΠΈ справку ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅. ВСорСтичСскиС знания, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΠΈΠΊΡƒΠ΄Π°, Π»ΡƒΡ‡ΡˆΠ΅ ΡƒΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Git(ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅)

git ΠΎΠΏΡ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ 

ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

git branch -d <name> # ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ name 
git branch -d bugFix00 #ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ bugFix00.

ΠžΠΏΡ†ΠΈΠΈ:
-C β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ рСпозитория вмСсто Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠΈ;
-c ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€=Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ;
-p β€” ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒ вСсь Π²Ρ‹Π²ΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ less;

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ локального рСпозитория.

1. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

cd ваша_ΠΏΠ°ΠΏΠΊΠ° #ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² ΠΏΠ°ΠΏΠΊΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ ваша_ΠΏΠ°ΠΏΠΊΠ° 

2.
git init #инициализация локального рСпозитория

3.
git add . #Ρ‚ΡƒΡ‚ ΠΌΡ‹ добавляСм всС. 
ΠŸΠ°ΠΏΠΊΡƒ. Π’ΠΎΡ‡ΠΊΠ° послС add отдСлСнная ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ.
МоТно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»
НапримСр
git add имя.Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ β€” ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ измСнСния нашСго Ρ„Π°ΠΉΠ»Π°.
Для добавлСния всСго Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ
git add -A

4. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ commit

git commit #ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

-m Β«ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉΒ» #Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ создания коммСнтария ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ. Π’Π°ΡˆΠΈ измСнСния Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΆΠ΅ с осмыслСнным ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ.
Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя ΠΊΠ»ΡŽΡ‡Π°, вмСсто Π΅Π³ΠΎ сокращСния. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, вмСсто -m Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ —message=Β«ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉΒ»

git commit --message="$Π’Π°Ρˆ осмыслСнный ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ"

Π’ΡƒΡ‚ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ русскиС Π±ΡƒΠΊΠ²Ρ‹ Π² коммСнтариях, Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ настройки. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ символов Π² систСмС, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ символов Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΈΠ»ΠΈ IDE, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ символов Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ символов Π² git. Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚: Windows Β«Π½Π΅ Π»ΡŽΠ±ΠΈΡ‚Β» ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅ апострофы, поэтому ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π·Π°ΠΊΠ»Π΅Ρ‡Π΅Π½ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. На Linux Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ апострофы ΠΏΡ€ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠΈ комСнтария ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ.

5.

git show #ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ измСнСния внСсСнныС вашим ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ

6.

git status  #просмотр Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояний git

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ β€” какая Π²Π΅Ρ‚ΠΊΠ° тСкущая.
КакиС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΈ Ρ‚Π΄. Команда ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ находится Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области(Π² staging area).

Π’Π΅Ρ‚ΠΊΠΈ. Branches

Π’Π΅Ρ‚ΠΊΠ°(branch) β€” ссылка Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ.

git branch имяВСтки #Π±ΡƒΠ΄Π΅Ρ‚ создана Π²Π΅Ρ‚ΠΊΠ° с ΠΈΠΌΠ΅Π½Π΅ΠΌ "имяВСтки"
, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ для ΠΈΠΌΠ΅Π½ΠΈ латинскиС Π±ΡƒΠΊΠ²Ρ‹. Π’ΡƒΡ‚ Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Когда ΠΌΡ‹ создали Π²Π΅Ρ‚ΠΊΡƒ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΎΡΡ‚Π°Π»Π°ΡΡŒ Π²Π΅Ρ‚ΠΊΠ°, которая Π±Ρ‹Π»Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½Π° Π΄ΠΎ этого. Ну Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ master. И Ссли послС создания Π²Π΅Ρ‚ΠΊΠΈ ΠΌΡ‹ скаТСм git commit, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° Π²Π΅Ρ‚ΠΊΠ° master. НС ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ этого часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкам.

Π‘ΠΎΠ²Π΅Ρ‚: Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½ΡƒΠΆΠ½ΠΎ Π΅Ρ‘ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π½Π΅Ρ‘ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ commit.

1. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π²Π΅Ρ‚ΠΊΡƒ:

git branch feature #созданиС Π²Π΅Ρ‚ΠΊΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ "feature" локально

2. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ:
git checkout feature#Π²Ρ‹Π±ΠΎΡ€ Π²Π΅Ρ‚ΠΊΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ "feature" локально

3. Π”Π΅Π»Π°Π΅ΠΌ commit:
git commit

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ вторая Π²Π΅Ρ‚ΠΊΠ° с ΠΈΠΌΠ΅Π½Π΅ΠΌ feature.

ОбъСдинСниС Π²Π΅Ρ‚ΠΎΠΊ(merge).
ОбъСдинСниС Π²Π΅Ρ‚ΠΎΠΊ создаСт ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΡ‚ Π΄Π²ΡƒΡ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ Π²Π΅Ρ‚ΠΊΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git.

1. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ master
2. Π‘ΠΌΠΎΡ€ΠΈΠΌ какая Π²Π΅Ρ‚ΠΊΠ° тСкущая
3. ОбъСдиняСм Π²Π΅Ρ‚ΠΊΠΈ

git merge feature  #ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с Π²Π΅Ρ‚ΠΊΠΎΠΉ feature

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ feature ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΅Ρ‘ с Π²Π΅Ρ‚ΠΊΠΎΠΉ master

1.

git checkout feature #Π²Ρ‹Π±ΠΎΡ€ Π²Π΅Ρ‚ΠΊΠΈ feature 

2.
git merge master #ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ
, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС feature c Π²Π΅Ρ‚ΠΊΠΎΠΉ master.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ доступных Π²Π΅Ρ‚ΠΎΠΊ:

git branch -v -a #ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС доступныС Π²Π΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ
git diff --cached #ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ измСнСния добавились Π² stage

stash β€” стСк, Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅
НС ΠΏΡƒΡ‚Π°ΠΉΡ‚Π΅ со stage, это Π½Π΅ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅.

Команда

git stash
сохраняСт всС Π½Π΅ Π·Π°ΠΊΠΎΠΌΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ измСнСния Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ сбрасываСт состояниС Π²Π΅Ρ‚ΠΊΠΈ Π΄ΠΎ HEAD.
git stash Π±Π΅Ρ€Π΅Ρ‚ ваши измСнСния, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ ΠΈ Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ ΠΊ фиксации, сохраняСт ΠΈΡ… для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ использования ΠΈ ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области.

Π‘Ρ‚Π΅Ρˆ(stash) ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ измСнСния, ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΎΠ½ ΠΈ называСтся stash, Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ β€” ΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ, ΠΏΡ€ΠΈΠΏΡ€ΡΡ‚Ρ‹Π²Π°Ρ‚ΡŒ.

git stash apply #ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии
git stash list  #вывСсти список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
git stash show #вывСсти послСдниС измСнСния
git stash drop #ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ послСдниС измСнСния Π² спискС 
git stash pop  # [apply] + [drop]
git stash clear #ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
git stash drop# ΡƒΠ΄Π°Π»ΠΈΡ‚ послСдний git stash
git stash drop stash@{5}#ΡƒΠ΄Π°Π»ΠΈΡ‚ git stash ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 5


рис 1.

На рисункС ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΏΠ°ΠΏΠΊΠΈ Π½Π° локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ для git.
Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² staging area. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ(git commit).
ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ(git push).
На Π΄Π°Π½Π½ΠΎΠΉ схСмС Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ stash.


рис 2.

На Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ рис 2. ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄ add, commit all, commit, reset, git reset head, git update index.

Untacked files β€” нСпроиндСксированныС Ρ„Π°ΠΉΠ»Ρ‹.
Working tree β€” ваша рабочая ΠΏΠ°ΠΏΠΊΠ°
Index β€” индСксация Ρ„Π°ΠΉΠ»ΠΎΠ²
Commit β€” измСнСния Ρ„Π°ΠΉΠ»ΠΎΠ²

Π—Π΄Π΅ΡΡŒ Π½ΡƒΠΆΠ½ΠΎ внСсти Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡΡΠ½ΠΎΡΡ‚ΡŒ. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° относится ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ. Но это Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΈΠ΄ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚ΠΎ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΌΡ‹ рассматриваСм Ρ€Π°Π±ΠΎΡ‚Ρƒ git c Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ, ΠΏΠΎΠ΄ Β«Ρ€Π°Π·Π½Ρ‹ΠΌ ΡƒΠ³Π»ΠΎΠΌΒ». Показан Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» индСксации ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ локального рСпозитория.

Π Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ:

cherry-pick
reset
revert
rebase
merge

ΠžΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. РассмотритС ΠΈΡ… ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Π Π°Π±ΠΎΡ‚Π° с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ

Π”Π°Π»Π΅Π΅ я ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρƒ ΠΊ описанию Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ.
Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ ΠΈ вашим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» [url]https://,[/url]
Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅(chrome, mozilla, opera ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ…).

GitHub.com >>>
Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ GitHub Π½Π° английском языкС.

Для Π½Π°Ρ‡Π°Π»Π°, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° GitHub, Ссли Π²Ρ‹ этого Π΅Ρ‰Π΅ Π½Π΅ сдСлали ΠΈΠ»ΠΈ
ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ измСнСния локального рСпозитория.
Π£Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π° самом сайтС GitHub.

ΠŸΠ΅Ρ€Π΅Π΄ использованиСм ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория Ρƒ вас Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.
Π’ ΠΏΠ°ΠΏΠΊΠ΅ Π½Π° локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅:

git init #инициализация локального рСпозитория
git add -A

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ(Π² Π΄Π°Π½Π½ΠΎΠΌ случаС GitHub) ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅:

git remote add origin https://github.com/имя_Π½ΠΈΠΊ_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ/Π˜ΠΌΡΠ Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡ.git

«имя_Π½ΠΈΠΊ_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΒ» β€” Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π½ΠΈΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория.
Β«Π˜ΠΌΡΠ Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡΒ» β€” Π² Π΄Π°Π½Π½ΠΎΠΌ случаС это имя вашСго ΡƒΠΆΠ΅ созданного Π·Π°Ρ€Π°Π½Π΅Π΅ рСпозитория Π½Π° GitHub

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡƒΡ‚ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹:

git remote -v

Π’Ρ‹Π²ΠΎΠ΄:

origin  [url]https://github.com/имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ/имя_рСпозитория.git[/url] (fetch)
origin  [url]https://github.com/имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ/имя_рСпозитория.git[/url] (push)
 git remote show #ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ Π΅ΡΡ‚ΡŒ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Π°ΠΌ ΠΎΠ΄Π½Π° Π²Π΅Ρ‚ΠΊΠ° origin.
Π’ΠΎ Π΅ΡΡ‚ΡŒ это Π½Π΅ сама Π²Π΅Ρ‚ΠΊΠ°, Π° Π΅Ρ‘ сокращСнноС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ассоциированноС с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ.
Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, Π°ΡΡΠΎΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.
git remote add <сокращСнноС_имя_ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ_рСпозитория> [email protected]:имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ/имя_ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ_рСпозитория.git
git remote add <имя_ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ_Ρ€Π΅ΠΏ> ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»@github.com:ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ/имя_ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ_рСпозитория.git

имя_ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ_Ρ€Π΅ΠΏ β€” имССтся Π² Π²ΠΈΠ΄Ρƒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ассоциировано с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ.
имя_ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ_рСпозитория β€” имССтся Π² Π²ΠΈΠ΄Ρƒ имя рСпозитория Π½Π° сСрвСрС. Π’ΠΎ Π΅ΡΡ‚ΡŒ имя ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория.

git remote set-url origin [url]https://имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ@github.com/имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ/test.git[/url] #ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ 
git pull origin master #Π·Π°Π±Ρ€Π°Ρ‚ΡŒ всС измСнСния с сСрвСра ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ origin  Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ master 

Волько данная ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория.
ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΎΠ½Π° сливаСт(ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚, merge) всС измСнСния ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория с вашими Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π­Ρ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ слСдуСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ ΠΈ Ρƒ вас своих Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ Π² локальном ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚.
git remote -v #ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ
git clone --recursive https://github.com/имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ/имя_рСпозитория.git #рСкурсивноС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ рСпозитория
 git clone --recursive https://github.com/имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ/имя_ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ_рСпозитория.git Lимя_локальной_ΠΏΠ°ΠΏΠΊΠΈ

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° создаСт ΠΏΠ°ΠΏΠΊΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Lимя_локальной_ΠΏΠ°ΠΏΠΊΠΈ.
Π‘Π΅Ρ€Π΅Ρ‚ всС измСнСния ΠΈΠ· рСпозитория Β«github.com/имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ/имя_ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ_рСпозитория.gitΒ» ΠΈ сохраняСт ΠΈΡ… Π² ΠΏΠ°ΠΏΠΊΠ΅ Β«Lимя_локальной_ΠΏΠ°ΠΏΠΊΠΈΒ».
Π—Π΄Π΅ΡΡŒ я написал прСфикс L ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ°ΠΏΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ ΠΎΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π½Π° сСрвСрС.
gitk #ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° отобраТСния Π³Ρ€Π°Ρ„Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ ΠΈ с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ Π½Π° GitHub
[url]https://greenido.files.wordpress.com/2013/07/git-local-remote.png?w=696&h=570[/url]

Из Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ Π½Π° сСрвСрС. ΠŸΠΎΠΊΠ°Π·Π°Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄ для краткости ΠΈ ясности.
Π’Π°Ρˆ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ находящийся Π½Π° ΠΎΠ΄Π½ΠΎΠΉ вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ станции β€” это Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° GitHub ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… сСрвСрах, Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ локально. Π’Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ для этого ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. Π£ вас Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий. Π’Π°ΠΊΠΈΠ΅ ΠΆΠ΅ Π²Π΅Ρ‚ΠΊΠΈ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΈΡ… ΠΈ Ρ‚Π΄. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ локально, ΠΊΠ°ΠΊ с сСрвСром.
ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ, Π²Ρ‹ смоТСтС ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° сСрвСр.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ваши Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.
Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ ΠΈ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ?
Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ .gitignore.

touch .gitignore #создаСт пустой Ρ„Π°ΠΉΠ» .gitignore

Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ cmd windows:
type nul > .gitignore #создаСт пустой Ρ„Π°ΠΉΠ» .gitignore

ΠŸΡƒΡΡ‚ΠΎΠΉ созданный Ρ„Π°ΠΉΠ» .gitignore Π²Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π°Π΅Ρ‚. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΠ»ΠΈΡΡŒ Π½Π° сСрвСр, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π² этом Ρ„Π°ΠΉΠ»Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°.
Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» .gitignore с GitHub. Π’Π°ΠΌ Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ .gitignore для Ρ€Π°Π·Π½Ρ‹Ρ… языков ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ².
Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ gitignore >>>

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ„Π°ΠΉΠ» .gitignore Π½Π΅ добавляСтся Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.
О Ρ„Π°ΠΉΠ»Π΅ .gitignore Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ:
git-scm.com/docs/gitignore
ΠŸΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎ описываСтся Π΅Π³ΠΎ синтаксис.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

git config --global core.excludesfile ~/.gitignore_global #создаСт ссылку Π½Π° Ρ„Π°ΠΉΠ» .gitignore_global

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΡƒΠ΄Π° Π²Π΅Π΄Π΅Ρ‚ ссылка ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ».

git config --get core.excludesfile #ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ„Π°ΠΉΠ» .gitignore_global

Π’Π°ΠΌ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ». ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»(Π’ Windows cmd).
cd c:\ΠΏΡƒΡ‚ΡŒ\Π³Π΄Π΅\Π΄ΠΎΠ»ΠΆΠ΅Π½_Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ_Ρ„Π°ΠΉΠ» .gitignore_global
type nul > .gitignore_global #ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ пустой Ρ„Π°ΠΉΠ» .gitignore_global

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΎΡ‚ΡΡŽΠ΄Π° >>>
ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ваш пустой Ρ„Π°ΠΉΠ» .gitignore_global Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΈ скопируйтС тСкст ΠΈΠ· Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² ваш. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ».


рис 3.

На Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄: git add, git commit, git push ΠΈ git fetch.

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅:

git push -f #Ρ‡Ρ€Π΅Π²Π°Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π²Π΅Ρ‚ΠΊΠΎΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… чСловСк…
git push --force #Ρ‡Ρ€Π΅Π²Π°Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π²Π΅Ρ‚ΠΊΠΎΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… чСловСк…
git fetch #Π·Π°Π±ΠΈΡ€Π°Π΅Ρ‚ измСнСния с сСрвСра, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

Команда fetch Π·Π°Π±ΠΈΡ€Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² ваш Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π½ΠΎ Π½Π΅ сливаСт ΠΈΡ… с ΠΊΠ°ΠΊΠΈΠΌΠΈ-Π»ΠΈΠ±ΠΎ вашими Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°ΠΌΠΈ ΠΈ Π½Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎ, Π½Π°Π΄ Ρ‡Π΅ΠΌ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚.
git pull #Π±Π΅Ρ€Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ с сСрвСра Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ рСпозитория ΠΈ сливаСт ΠΈΡ… с Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ.

ΠŸΡ€ΠΎΡ‰Π΅ говоря,

git pull 
состоит ΠΈΠ· Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠ°Π½Π΄:
git fetch
ΠΈ
git merge
.

ΠžΠΏΡ†ΠΈΠΈ(ΠΊΠ»ΡŽΡ‡ΠΈ) -n, —dry-run #ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ. Π­Ρ‚ΠΈ ΠΎΠΏΡ†ΠΈΠΈ Π½ΡƒΠΆΠ½Ρ‹ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ измСнСния сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π°.

Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Ρ‘ ΠΏΡ€ΠΈ увСрСнности Π±Π΅Π· ΠΊΠ»ΡŽΡ‡Π΅ΠΉ -n, —dry-run

МодСли вСтвлСния Π² Git:

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ вСтвлСния?
Для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹(Workflow). Для стандартизации. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π² вашСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ принята, Π² зависимости ΠΎΡ‚ Ρ†Π΅Π»Π΅ΠΉ нСкоторая модСль вСтвлСния.

Central Workflow
Developer Branch Workflow
Feature Branch Workflow
Issue Branch Workflow
Forking Workflow
Patch Workflow

Central Workflow (Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс) Π² этом контСкстС опрСдСляСтся ΠΊΠ°ΠΊ Β«Π²Ρ‹ отправляСтС измСнСния Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ свои послСдниС Π²Ρ‹ΡˆΠ΅ΡΡ‚ΠΎΡΡ‰ΠΈΠ΅ измСнСния», нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ rebase ΠΈΠ»ΠΈ merge. (pull = fetch + merge ΠΈΠ»ΠΈ fetch + rebase, Π² зависимости ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²)

Feature Branching являСт логичСским Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ Central Workflow (Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсса). Основная идСя Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса Feature Branch: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ вмСсто основной Π²Π΅Ρ‚Π²ΠΈ. Главная Π²Π΅Ρ‚Π²ΡŒ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ являСтся большим прСимущСством Π² срСдах Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ.

Gitflow Workflow
Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Gitflow Π±Ρ‹Π» Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² Π±Π»ΠΎΠ³Π΅ ВинсСнта ДриссСна ΠΎΡ‚ nvie Π·Π° 2010 Π³ΠΎΠ΄. Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Gitflow опрСдСляСт ΡΡ‚Ρ€ΠΎΠ³ΡƒΡŽ модСль вСтвлСния, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΡƒΡŽ для выпуска ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Π½Π΅ добавляСт ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎΠΌΠΈΠΌΠΎ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ трСбуСтся для Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса Feature Branch. ВмСсто этого ΠΎΠ½ Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ€ΠΎΠ»ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ вСтвям ΠΈ опрСдСляСт, ΠΊΠ°ΠΊ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ.

Forking Workflow
Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Forking отличаСтся ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ сСрвСрный Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² качСствС Β«Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉΒ» ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹, ΠΎΠ½ прСдоставляСт ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ сСрвСрный Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ участника Π΅ΡΡ‚ΡŒ Π½Π΅ ΠΎΠ΄ΠΈΠ½, Π° Π΄Π²Π° рСпозитория Git: частный Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ общСдоступный сСрвСрный.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ:

НС сущСствуСт ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса, подходящСго для всСх Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² Git. Π’Π°ΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Git, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ повысит ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π΅, Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Π΅Π»ΠΎΠ²ΡƒΡŽ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρƒ. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Git, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ Ρ‚Π΅Π³ΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊ выпуска ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ. Если ваша ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ для отслСТивания Π·Π°Π΄Π°Ρ‡, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ выполняСмым Π·Π°Π΄Π°Ρ‡Π°ΠΌ.
Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ использованию Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ Git.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹:
ΠœΡ‹ с Π²Π°ΠΌΠΈ рассмотрСли Ρ€Π°Π±ΠΎΡ‚Ρƒ систСмы git ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ рСпозиториями.
Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни ΠΊΠΎΡΠ½ΡƒΠ»ΠΈΡΡŒ вопроса установки ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ git, рСгистрации ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ GitHub. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ git ΠΊΠ°ΠΊ локально, Ρ‚Π°ΠΊ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ. А Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса. Π’ ΠΎΠ΄Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ±ΠΎ всСм. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ изучая ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Π²Ρ‚ΠΎΡ€ΠΎΠ². Π§Ρ‚ΠΎ мСня ΠΏΠΎ настоящСму восхищаСт Π² git, Ρ‚Π°ΠΊ это ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ рСализация Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ экосистСмы.

.gitignore. ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹
Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ понадобится Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ваш Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈ лишниС Ρ„Π°ΠΉΠ»Ρ‹.
Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .gitignore Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.
Для автоматичСского ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ для вашСго IDE. НапримСр для NetBeans 10 Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта netbeans:
plugins.netbeans.org/plugin/50356/gitignore-io
Π’Π»Π°Π΄Π΅Π»Π΅Ρ† ΠΏΠ»Π°Π³ΠΈΠ½Π°: junichi11
ЛицСнзия: Apache License, Version 2.0

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ:
1. Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΡƒ Π½Π° локальном дискС
2. ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ IDE NetBeans
3. Tools/Plugin/Downloaded/Add Plugins
4. Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ»Π°Π³ΠΈΠ½Ρƒ Π½Π° вашСм локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.
5. ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊ IDE

Для IDE Intellij Idea Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ Β«Add to gitignoreΒ»
plugins.jetbrains.com/plugin/7495—ignore

1.ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° сайт с ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ
2. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π²Π°ΡˆΡƒ Π²Π΅Ρ€ΡΠΈΡŽ IDE
3. Π§ΠΈΡ‚Π°Π΅ΠΌ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ.
4. Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ ΠΈ устанавливаСм

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΈΠ· IDE:
Preferences > Plugins > Browse repositories… > Search for «.ignore» > Install Plugin
ПослС установки Β«Restart IdeaΒ».

git update-git-for-windows #ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ git для windows

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы:
Онлайн книга по Git >>>
10 ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Git ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ >>>
ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΊΠΎΠ΄Π° с Git: 3 инструмСнта для поиска ошибок >>>
Магия Git. Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚Ρ‹. Stanford >>>
Π—Π΄Π΅ΡΡŒ, Π½Π° Ρ…Π°Π±Ρ€Π΅ Π΅ΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ публикация ΠΎ Git Π°Π²Ρ‚ΠΎΡ€Π° jsirex, «ЕТСднСвная Ρ€Π°Π±ΠΎΡ‚Π° с GitΒ»

Как Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΠΎΡ‚ вСрсии ΠΊ вСрсии Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ вносятся измСнСния.
КакиС измСнСния Π±Ρ‹Π»ΠΈ сдСланы для вСрсии git 2.0: >>>

Π—Π΄Π΅ΡΡŒ Π΅Ρ‰Π΅ слСдуСт Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ бСзопасности использования git ΠΈ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ относится ΠΊ использованию Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… UI для git.

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅, ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠ΅ слСдуСт…

Автор Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ свои ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΡ… Π² Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊΠΈ Π² случаС отсутствия ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. Π­Ρ‚ΠΎ Π½Π΅ ΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ°Ρ‚ΡƒΠΌ. Если Ρƒ вас Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Π²Π°ΠΌ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠΎΡ‡ΡŒ, Ρ‚ΠΎ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€Π°.

Git — Book

2nd Edition (2014)

Download Ebook

The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com.>

    1. 1.1 О систСмС контроля вСрсий
    2. 1.2 ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история Git
    3. 1.3 ΠžΡΠ½ΠΎΠ²Ρ‹ Git
    4. 1.4 Командная строка
    5. 1.5 Установка Git
    6. 1.6 ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ настройка Git
    7. 1.7 Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ?
    8. 1.8 Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
    1. 2.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Git-рСпозитория
    2. 2.2 Π—Π°ΠΏΠΈΡΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
    3. 2.3 ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
    4. 2.4 ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹
    5. 2.5 Π Π°Π±ΠΎΡ‚Π° с ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ рСпозиториями
    6. 2.6 Π Π°Π±ΠΎΡ‚Π° с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ
    7. 2.7 ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹ Π² Git
    8. 2.8 Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
    1. 3.1 О Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΈ Π² Π΄Π²ΡƒΡ… словах
    2. 3.2

Как Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с GitHub: быстрый старт / Π₯Π°Π±Ρ€

РаспрСдСлСнныС систСмы контроля вСрсий (DVCS) постСпСнно Π·Π°ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ собой Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅. Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π½ΠΈΡ… β€” самоС врСмя ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстро Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с git, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сайт github.com.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны различия ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ DVCS. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π±ΠΎΡ‚Π° с git, ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ Π΅ΡΡ‚ΡŒ мноТСство Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… источников, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π˜Ρ‚Π°ΠΊ, сайт github.com позиционируСтся ΠΊΠ°ΠΊ Π²Π΅Π±-сСрвис хостинга ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с использованиСм систСмы контроля вСрсий git, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡΠ΅Ρ‚ΡŒ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ число Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π², для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прСдоставляСтся wiki, систСма issue tracking-Π°, Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ code review ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. GitHub Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ являСтся самым популярным сСрвисом Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°, ΠΎΠ±ΠΎΠ³Π½Π°Π² Sourceforge ΠΈ Google Code.

Для open-souce ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² использованиС сайта бСсплатно. ΠŸΡ€ΠΈ нСобходимости ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° ΠΏΠ»Π°Ρ‚Π½Ρ‹ΠΉ Ρ‚Π°Ρ€ΠΈΡ„Π½Ρ‹ΠΉ ΠΏΠ»Π°Π½:

НачнСм с рСгистрации. ИдСм ΠΏΠΎ ссылкС github.com/signup/free ΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌ свои Π΄Π°Π½Π½Ρ‹Π΅.
ПослС рСгистрации ΠΌΡ‹ ΠΏΠΎΠΏΠ°Π΄Π°Π΅ΠΌ Π½Π° Dashboard нашСго Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°:

БСйчас Ρƒ нас Π½Π΅Ρ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ рСпозитория, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈΠ±ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π»ΠΈΠ±ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π²ΠΈΡ‚ΡŒΡΡ (fork) ΠΎΡ‚ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‡ΡƒΠΆΠΎΠ³ΠΎ рСпозитория ΠΈ вСсти ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π—Π°Ρ‚Π΅ΠΌ, ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ, свои измСнСния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€Ρƒ исходного рСпозитория (Pull request).

Но для Π½Π°Ρ‡Π°Π»Π° установим git ΠΈ настроим Π΅Π³ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сайтом.

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² Windows, ΠΊΠ°Ρ‡Π°Π΅ΠΌ ΠΈ устанавливаСм msysgit. Π­Ρ‚ΠΎ консольная вСрсия git для Windows (Π΄Π°Π»Π΅Π΅ расказ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅ΡΡ‚ΠΈΡΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ этой ОБ).
Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ для MacOS X (eng)
Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ для Linux (eng)
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ, просто Π²Π΅Π·Π΄Π΅ ΠΆΠΌΠ΅ΠΌ Next. ПослС установки Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π² контСкстном мСню ΠŸΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ° Git Bash:

ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· Git Bash.lnk Π² ΠΏΠ°ΠΏΠΊΠ΅ с установлСной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ:

ΠŸΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ Π² консоли свои Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ настройки пСрСносов строк:
git config --global user.name "вашС имя"
git config --global user.email "ваша ΠΏΠΎΡ‡Ρ‚Π°"
git config --global core.autocrlf true
git config --global core.safecrlf true

ΠšΡΡ‚Π°Ρ‚ΠΈ, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ курс ΠΏΠΎ использованию git ΠΈΠ· консоли. ΠšΡƒΡ€Ρ проходится Π·Π° нСсколько часов ΠΈ Π΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ.

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ gui β€” для Windows сущСствуСт нСсколько Ρ‚Π°ΠΊΠΈΡ… инструмСнтов для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с git. Π”Π²Π° основных β€” это SmartGit (кроссплатформСнный) ΠΈ TortoiseGit. Оба Π½Π΅ΠΏΠ»ΠΎΡ…ΠΈΠ΅, ΠΈ ΠΊΠ°ΠΊΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ β€” Π΄Π΅Π»ΠΎ вкуса. Π― ΠΎΠΏΠΈΡˆΡƒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с TortoiseGit.
Для ΠΌΠ°ΠΊΠΎΠ² Π²Ρ‹Π±ΠΎΡ€ giu Ρ‚ΠΎΠΆΠ΅ имССтся.

  • ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΎΡ‚ GitHub β€” Π½Π° ΠΌΠΎΠΉ взгляд ΠΏΠΎΠΊΠ° достаточно сыроват.
  • GitX β€” Π»ΠΈΡ‡Π½ΠΎ ΠΌΠ½Π΅ Π½Π΅ приглянулся
  • GitBox β€” Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ слСдуСт mac-way, ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ

ΠšΠ°Ρ‡Π°Π΅ΠΌ ΠΏΠΎ ссылкС code.google.com/p/tortoisegit/downloads/list. ΠŸΡ€ΠΈ установкС Π²Π΅Π·Π΄Π΅ ΠΆΠΌΠ΅ΠΌ Next.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ возвращаСмся ΠΊ github ΠΈ создадим Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ΠΠ°Ρ…ΠΎΠ΄ΡΡΡŒ Π½Π° Dashboard, ΠΆΠΌΠ΅ΠΌ New Repository (https://github.com/repositories/new), Π²Π²ΠΎΠ΄ΠΈΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΆΠΌΠ΅ΠΌ Create Repository.

GitHub позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с рСпозиториями трСмя способами: SSH, HTTP ΠΈ Git Read-Only, соотвСтствСнно прСдоставляя ссылки Ρ‚Ρ€Π΅Ρ… Π²ΠΈΠ΄ΠΎΠ² для нашСго рСпозитория:
1. [email protected]:habrauser/Hello-world.git
2. [email protected]/habrauser/Hello-world.git
3. git://github.com/habrauser/Hello-world.git

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ просто Π·Π°Π±Ρ€Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ, достаточно Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° git (Ρ‚Ρ€Π΅Ρ‚ΡŒΡ ссылка). Π­Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ быстрый ΠΈ эффСктивный способ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΉ доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния.

Если ΠΆΠ΅ ΠΌΡ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ внСсти измСнСния Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° github, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ HTTP ΠΈΠ»ΠΈ SSH.
Π Π°Π±ΠΎΡ‚Π° ΠΏΠΎ http Π½ΠΈΠΊΠ°ΠΊΠΈΡ… трудностСй Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚, Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Π½Π° github.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SSH, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°Ρ€Ρƒ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ: ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ. ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Π² настройках Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° Π½Π° github, Π° ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ сохранСн Π½Π° локальной машинС.

Для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ инструмСнтом ssh-keygen, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ΄Π΅Ρ‚ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ с git (описаниС этого способа ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΡƒΡ‚). ΠœΡ‹ ΠΆΠ΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PuTTY (Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΊΡƒ puttygen, Π²Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Π² Π΅Π³ΠΎ состав). PuTTY β€” это Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа, Π² Ρ‚ΠΎΠΌ числС ΠΈ с использованиСм SSH.

ΠšΠ°Ρ‡Π°Π΅ΠΌ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html). ΠšΡΡ‚Π°Ρ‚ΠΈ, puttygen Π±ΠΎΠ»Π΅Π΅ старой вСрсии (2007 Π³ΠΎΠ΄) ΠΈΠ΄Π΅Ρ‚ Π² составС TortoiseGit.

ПослС установки PuTTY, запускаСм puttygen ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ с установлСнной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ:

Π–ΠΌΠ΅ΠΌ Generate, Π΄Π²ΠΈΠ³Π°Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя курсором ΠΌΡ‹ΡˆΠΈ, для получСния случайных Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ

Π’Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, Π·Π°Ρ‰ΠΈΡ‰Π°ΡŽΡ‰ΠΈΠΉ наш ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² ΠΏΠΎΠ»Π΅ Key passphrase, Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΆΠΌΠ΅ΠΌ Save private key, сохраняСм.

Π”Π°Π»Π΅Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ OpenSSH ΠΈΠ· тСкстовой области Β«Public key for pasting…Β» ΠΈ ΠΈΠ΄Π΅ΠΌ Π² настройки нашСго Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° Π½Π° github (Account Settings) Π² Ρ€Π°Π·Π΄Π΅Π» SSH Public Keys:

ΠΆΠΌΠ΅ΠΌ Add another public Key, вставляСм наш ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡:

Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Add key. ВсС, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с github ΠΏΠΎ ssh. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π·Π°Π±Ρ€Π°Ρ‚ΡŒ наш пустой Ρ€Π΅Ρ€ΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ с использованиСм TortioшseGit. Π’ контСкстном мСню ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ° Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Git Clone…

Π’ ΠΏΠΎΠ»Π΅ Url вставляСм SSH-адрСс нашСго рСпозитория, Π² ΠΏΠΎΠ»Π΅ Load Putty Key ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΡƒΡ‚ΡŒ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ, ΠΆΠΌΠ΅ΠΌ OK.

Pageant запросит Ρƒ Π½Π°c ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° (ΠΏΠΎΡ‚ΠΎΠΌ этого Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ потрСбуСтся)

Pageant β€” это Π°Π³Π΅Π½Ρ‚ SSH-Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² составС PuTTY, ΠΎΠ½ позволяСт ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ.
Π’ Ρ‚Ρ€Π΅Π΅ висит Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅ΠΊ:

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ склонирован Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ измСнСния Π½Π° github. Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Ρ„Π°ΠΉΠ» README (Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ README обрабатываСтся github ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ β€” Π΅Π³ΠΎ содСрТимоС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² качСствС описания рСпозитория Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ страницС)

Π—Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΠΌ измСнСния Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

ΠΈ синхронизируСм Π΅Π³ΠΎ с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ Π½Π° github:

Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Push

Π’Π΅ΠΏΠ΅Ρ€ΡŒ зайдя Π½Π° страницу нашСго рСпозитория ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ рСпозитория сайт ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ wiki:

Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ систСму issue tracking-a:

кстати, для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Eclipсe β€” Π΅ΡΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ mylyn-ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ΠΎΡ€ для github:

ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ EGit:

По ссылкС Explore GitHub открываСтся ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎ мноТСству Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π², Π² Ρ‚ΠΎΠΌ числС ΠΏΠΎ языкам программирования, популярности ΠΈ Ρ‚.ΠΏ.

Π Π΅Π·ΡŽΠΌΠΈΡ€ΡƒΡ хочСтся ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ систСмами контроля вСрсий, ΠΈΠ»ΠΈ ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ ΠΈ ΠΏΡ€ΠΈΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ ΠΊ распрСдСлСнным VCS, Π½ΠΎ Π½Π΅ Π·Π½Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ смысл ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ git, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π°ΠΊΠΎΠΉ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт ΠΊΠ°ΠΊ github.com.

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с git:
code.google.com/p/msysgit git для windows
www.syntevo.com/smartgit/index.html SmartGit
code.google.com/p/tortoisegit TortoiseGit
http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY

ΠŸΡ€ΠΎ git Π½Π° русском:
habrahabr.ru/blogs/Git/106912 «Удачная модСль вСтвлСния для gitΒ» β€” ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ англоязычной ΡΡ‚Π°Ρ‚ΡŒΠΈ
githowto.com ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ курс ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с git ΠΈΠ· консоли
habrahabr.ru/blogs/Git/106912 Β«ΠŸΠΎΡ‡Π΅ΠΌΡƒ gitΒ» + обсуТдСниС
habrahabr.ru/blogs/development/68341 Β«Git для пСрСходящих с SVNΒ» + обсуТдСниС
habrahabr.ru/blogs/Git/75990 «Командная Ρ€Π°Π±ΠΎΡ‚Π° Π² gitΒ» + обсуТдСниС
progit.org/book/ru русский ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ½ΠΈΠ³ΠΈ Β«Pro GitΒ» (ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ΠΎ Π½Π΅ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°)
habrahabr.ru/blogs/Git/123111 инструкция-ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…
los-t.livejournal.com/tag/git%20guts Ρ†ΠΈΠΊΠ» постов «внутрСнности gitΒ»
lib.custis.ru/%D0%9B%D0%B8%D0%BD%D1%83%D1%81_%D0%A2%D0%BE%D1%80%D0%B2%D0%B0%D0%BB%D1%8C%D0%B4%D1%81_%D0%BE_GIT_%D0%BD%D0%B0_Google_Talks Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ ΠΎ git
habrahabr.ru/blogs/Git/80909 ΠΊΠ½ΠΈΠ³Π° Β«Π’ΠΎΠ»ΡˆΠ΅Π±ΡΡ‚Π²ΠΎ gitΒ»

ΠŸΡ€ΠΎ git Π½Π° английском:
ΠΊΠ½ΠΈΠ³ΠΈ


Π²ΠΈΠ΄Π΅ΠΎ
Π΄Ρ€ΡƒΠ³ΠΎΠ΅

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Git / Π₯Π°Π±Ρ€

Π’ этом эссС описана схСма Ρ€Π°Π±ΠΎΡ‚Ρ‹ Git. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Git достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для контроля вСрсий своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

ЭссС концСнтрируСтся Π½Π° структурС Π³Ρ€Π°Ρ„Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ основан Git, ΠΈ Π½Π° Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ свойства этого Π³Ρ€Π°Ρ„Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Git. Π˜Π·ΡƒΡ‡Π°Ρ основы, Π²Ρ‹ строитС своё прСдставлСниС Π½Π° достовСрной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π° Π½Π΅ Π½Π° Π³ΠΈΠΏΠΎΡ‚Π΅Π·Π°Ρ…, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ· экспСримСнтов с API. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ модСль ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ сдСлал Git, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈ Ρ‡Ρ‚ΠΎ ΠΎΠ½ собираСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

ВСкст Ρ€Π°Π·Π±ΠΈΡ‚ Π½Π° сСрии ΠΊΠΎΠΌΠ°Π½Π΄, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. Иногда Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ наблюдСния ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ структуры Π΄Π°Π½Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„Π°, Π»Π΅ΠΆΠ°Ρ‰Π΅Π³ΠΎ Π² основС Git. НаблюдСния ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ свойство Π³Ρ€Π°Ρ„Π° ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, основанноС Π½Π° Π½Ρ‘ΠΌ.

ПослС прочтСния для Π΅Ρ‰Ρ‘ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ погруТСния ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ обильно ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌΡƒ исходному ΠΊΠΎΠ΄Ρƒ ΠΌΠΎΠ΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Git Π½Π° JavaScript.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

~ $ mkdir alpha
~ $ cd alpha

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ создаёт Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ alpha
~/alpha $ mkdir data
~/alpha $ printf 'a' > data/letter.txt

Он пСрСмСщаСтся Π² эту Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΈ создаёт Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ data. Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ½ создаёт Ρ„Π°ΠΉΠ» letter.txt с содСрТимым Β«Π°Β». ДирСктория alpha выглядит Ρ‚Π°ΠΊ:
alpha
└── data
    └── letter.txt

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

~/alpha $ git init
          Initialized empty Git repository

git init вносит Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π² Git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Для этого ΠΎΠ½ создаёт Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ .git ΠΈ создаёт Π² Π½Π΅ΠΉ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ². Они ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ всю ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Git ΠΈ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ – Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ°Π³ΠΈΠΈ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡ… Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ – ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ‚Π°ΠΊ ΠΆΠ΅ просто, ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»Ρ‹ самого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ дирСктория alpha выглядит Ρ‚Π°ΠΊ:

alpha
β”œβ”€β”€ data
|   └── letter.txt
└── .git
    β”œβ”€β”€ objects
    etc...

ДирСктория .git с Π΅Ρ‘ содСрТимым относится с Git. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

ДобавляСм Ρ„Π°ΠΉΠ»Ρ‹

~/alpha $ git add data/letter.txt

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ запускаСт git add Π½Π° data/letter.txt. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΡΡ‚ Π΄Π²Π΅ Π²Π΅Ρ‰ΠΈ.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, создаётся Π½ΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠ±-Ρ„Π°ΠΉΠ» Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ .git/objects/. Он содСрТит сТатоС содСрТимоС data/letter.txt. Π•Π³ΠΎ имя – сгСнСрированный Ρ…ΡΡˆ Π½Π° основС содСрТимого. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Git Π΄Π΅Π»Π°Π΅Ρ‚ Ρ…ΡΡˆ ΠΎΡ‚ Π° ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ 2e65efe2a145dda7ee51d1741299f848e5bf752e. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° символа Ρ…ΡΡˆΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΈΠΌΠ΅Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² Π±Π°Π·Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²: .git/objects/2e/. ΠžΡΡ‚Π°Ρ‚ΠΎΠΊ Ρ…ΡΡˆΠ° – это имя Π±Π»ΠΎΠ±-Ρ„Π°ΠΉΠ»Π°, содСрТащСго внутрСнности Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°: .git/objects/2e/65efe2a145dda7ee51d1741299f848e5bf752e.

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ простоС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π² Git ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ Π΅Π³ΠΎ содСрТимого Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ objects. Оно Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΌ, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠ΄Π°Π»ΠΈΡ‚ data/letter.txt ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, git add добавляСт Ρ„Π°ΠΉΠ» Π² индСкс. ИндСкс – это список, содСрТащий всС Ρ„Π°ΠΉΠ»Ρ‹, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Git Π±Ρ‹Π»ΠΎ Π½Π°ΠΊΠ°Π·Π°Π½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ. Он хранится Π² .git/index. КаТдая строка Π΄Π°Ρ‘Ρ‚ Π² соотвСтствиС отслСТиваСмому Ρ„Π°ΠΉΠ»Ρƒ Ρ…ΡΡˆ Π΅Π³ΠΎ содСрТимого ΠΈ врСмя добавлСния. Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠΌ получаСтся содСрТимоС индСкса послС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git add:

data/letter.txt 2e65efe2a145dda7ee51d1741299f848e5bf752e

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ создаёт Ρ„Π°ΠΉΠ» data/number.txt содСрТащий 1234.
~/alpha $ printf '1234' > data/number.txt

Рабочая копия выглядит Ρ‚Π°ΠΊ:
alpha
└── data
    └── letter.txt
    └── number.txt

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ добавляСт Ρ„Π°ΠΉΠ» Π² Git.
~/alpha $ git add data

Команда git add создаёт Π±Π»ΠΎΠ±-Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранится содСрТимоС data/number.txt. Он добавляСт Π² индСкс запись для data/number.txt, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ Π½Π° Π±Π»ΠΎΠ±. Π’ΠΎΡ‚ содСрТимоС индСкса послС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ запуска git add:
data/letter.txt 2e65efe2a145dda7ee51d1741299f848e5bf752e
data/number.txt 274c0052dd5408f8ae2bc8440029ff67d79bc5c3

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² индСксС пСрСчислСны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ data, хотя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄Π°Π²Π°Π» ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git add data. Π‘Π°ΠΌΠ° дирСктория data ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ указываСтся.
~/alpha $ printf '1' > data/number.txt
~/alpha $ git add data

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ создал data/number.txt, ΠΎΠ½ Ρ…ΠΎΡ‚Π΅Π» Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ 1, Π° Π½Π΅ 1234. Он вносит ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ снова добавляСт Ρ„Π°ΠΉΠ» ΠΊ индСксу. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° создаёт Π½ΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠ± с Π½ΠΎΠ²Ρ‹ΠΌ содСрТимым. Она обновляСт запись Π² индСксС для data/number.txt с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠ±.

Π”Π΅Π»Π°Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚

~/alpha $ git commit -m 'a1'
          [master (root-commit) 774b54a] a1

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚ a1. Git Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π½Ρ‘ΠΌ. ΠœΡ‹ вскорС объясним ΠΈΡ….

Π£ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ commit Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ шага. Она создаёт Π³Ρ€Π°Ρ„, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ содСрТимоС вСрсии ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ коммитят. Она создаёт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Она направляСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„Π°


Git Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, создавая Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ ΠΈΠ· индСкса. Π­Ρ‚ΠΎΡ‚ Π³Ρ€Π°Ρ„ записываСт располоТСниС ΠΈ содСрТимоС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

Π“Ρ€Π°Ρ„ состоит ΠΈΠ· Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²: Π±Π»ΠΎΠ±Ρ‹ ΠΈ Π΄Π΅Ρ€Π΅Π²ΡŒΡ. Π‘Π»ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· git add. Они ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ содСрТимоС Ρ„Π°ΠΉΠ»ΠΎΠ². Π”Π΅Ρ€Π΅Π²ΡŒΡ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅. Π”Π΅Ρ€Π΅Π²ΠΎ прСдставляСт Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π΅Ρ€Π΅Π²Π°, записавший содСрТимоС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ data ΠΏΡ€ΠΈ Π½ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅.

100664 blob 2e65efe2a145dda7ee51d1741299f848e5bf752e letter.txt
100664 blob 56a6051ca2b02b04ef92d5150c9ef600403cb1de number.txt

ΠŸΠ΅Ρ€Π²Π°Ρ строка записываСт всё Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для воспроизводства data/letter.txt. ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΏΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ. Вторая – Ρ‡Ρ‚ΠΎ содСрТимоС Ρ„Π°ΠΉΠ»Π° хранится Π² Π±Π»ΠΎΠ±Π΅, Π° Π½Π΅ Π² Π΄Π΅Ρ€Π΅Π²Π΅. Π’Ρ€Π΅Ρ‚ΡŒΡ – Ρ…ΡΡˆ Π±Π»ΠΎΠ±Π°. ЧСтвёртая – имя Ρ„Π°ΠΉΠ»Π°.

Вторая строчка Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ относится ΠΊ data/number.txt.

НиТС ΡƒΠΊΠ°Π·Π°Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-Π΄Π΅Ρ€Π΅Π²ΠΎ для alpha, ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

040000 tree 0eed1217a2947f4930583229987d90fe5e8e0b74 data

ЕдинствСнная строка ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π΄Π΅Ρ€Π΅Π²ΠΎ data.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ root ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π΄Π΅Ρ€Π΅Π²ΠΎ data. Π”Π΅Ρ€Π΅Π²ΠΎ data ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π±Π»ΠΎΠ±Ρ‹ для data/letter.txt ΠΈ data/number.txt.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π°


git commit создаёт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° послС создания Π³Ρ€Π°Ρ„Π°. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° – это Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ тСкстовый Ρ„Π°ΠΉΠ» Π² .git/objects/:
tree ffe298c3ce8bb07326f888907996eaa48d266db4
author Mary Rose Cook <[email protected]> 1424798436 -0500
committer Mary Rose Cook <[email protected]> 1424798436 -0500

a1

ΠŸΠ΅Ρ€Π²Π°Ρ строка ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π΄Π΅Ρ€Π΅Π²ΠΎ Π³Ρ€Π°Ρ„Π°. Π₯эш – для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄Π΅Ρ€Π΅Π²Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΡ€Π΅Π½ΡŒ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ. Π’ΠΎ бишь, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ alpha. ПослСдняя строчка – ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

ΠΠ°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚


НаконСц, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π° направляСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

Какая Ρƒ нас тСкущая Π²Π΅Ρ‚ΠΊΠ°? Git ΠΈΠ΄Ρ‘Ρ‚ Π² Ρ„Π°ΠΉΠ» HEAD Π² .git/HEAD ΠΈ Π²ΠΈΠ΄ΠΈΡ‚:

ref: refs/heads/master

Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ HEAD ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° master. master – тСкущая Π²Π΅Ρ‚ΠΊΠ°.

HEAD ΠΈ master – это ссылки. Бсылка – это ΠΌΠ΅Ρ‚ΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Git, ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

Π€Π°ΠΉΠ»Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ ссылку master, Π½Π΅ сущСствуСт, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Git создаёт Ρ„Π°ΠΉΠ» Π² .git/refs/heads/master ΠΈ Π·Π°Π΄Π°Ρ‘Ρ‚ Π΅Π³ΠΎ содСрТимоС – Ρ…ΡΡˆ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΠΎΠΌΠΌΠΈΡ‚:

74ac3ad9cde0b265d2b4f1c778b283a6e2ffbafd

(Если Π²Ρ‹ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ Π²Π±ΠΈΠ²Π°Π΅Ρ‚Π΅ Π² Git ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ваш Ρ…ΡΡˆ a1 Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΌΠΎΠ΅Π³ΠΎ. Π₯эш ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² содСрТимого – Π±Π»ΠΎΠ±ΠΎΠ² ΠΈ Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² – всСгда ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅. А ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² – Π½Π΅Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ Π΄Π°Ρ‚Ρ‹ ΠΈ ΠΈΠΌΠ΅Π½Π° создатСлСй).

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π³Ρ€Π°Ρ„ Git HEAD ΠΈ master:

HEAD ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° master, ΠΊΠ°ΠΊ ΠΈ Π΄ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Но Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ master сущСствуСт ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

Π”Π΅Π»Π°Π΅ΠΌ Π½Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚


НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ Π³Ρ€Π°Ρ„ послС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° a1. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ рабочая копия ΠΈ индСкс.

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρƒ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ, индСкса ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ содСрТимоС data/letter.txt ΠΈ data/number.txt. ИндСкс ΠΈ HEAD ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ…ΡΡˆΠΈ для указания Π½Π° Π±Π»ΠΎΠ±Ρ‹, Π½ΠΎ содСрТимоС Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ хранится Π² Π²ΠΈΠ΄Π΅ тСкста Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС.

~/alpha $ printf '2' > data/number.txt

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ мСняСт содСрТимоС data/number.txt Π½Π° 2. Π­Ρ‚ΠΎ обновляСт Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ копию, Π½ΠΎ оставляСт индСкс ΠΈ HEAD Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
~/alpha $ git add data/number.txt

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ добавляСт Ρ„Π°ΠΉΠ» Π² Git. Π­Ρ‚ΠΎ добавляСт Π±Π»ΠΎΠ±, содСрТащий 2, Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ objects. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ записи индСкса для data/number.txt ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠ±.
~/alpha $ git commit -m 'a2'
          [master f0af7e6] a2

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚. Π¨Π°Π³ΠΈ Ρƒ Π½Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, создаётся Π½ΠΎΠ²Ρ‹ΠΉ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ для прСдставлСния содСрТимого индСкса.

Π—Π°ΠΏΠΈΡΡŒ Π² индСксС для data/number.txt измСнилась. Π‘Ρ‚Π°Ρ€ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ data ΡƒΠΆΠ΅ Π½Π΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ проиндСксированноС состояниС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ data. НуТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-Π΄Π΅Ρ€Π΅Π²ΠΎ data.

100664 blob 2e65efe2a145dda7ee51d1741299f848e5bf752e letter.txt
100664 blob d8263ee9860594d2806b0dfd1bfd17528b0ba2a4 number.txt

Π₯эш Ρƒ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° отличаСтся ΠΎΡ‚ старого Π΄Π΅Ρ€Π΅Π²Π° data. НуТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ root для записи этого Ρ…ΡΡˆΠ°.
040000 tree 40b0318811470aaacc577485777d7a6780e51f0b data

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, создаётся Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.
tree ce72afb5ff229a39f6cce47b00d1b0ed60fe3556
parent 774b54a193d6cfdd081e581a007d2e11f784b9fe
author Mary Rose Cook <[email protected]> 1424813101 -0500
committer Mary Rose Cook <[email protected]> 1424813101 -0500

a2

ΠŸΠ΅Ρ€Π²Π°Ρ строка ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ root. Вторая строка ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° a1: Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚. Для поиска Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Git ΠΈΠ΄Ρ‘Ρ‚ Π² HEAD, ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ master ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ…ΡΡˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° a1.

Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, содСрТимоС Ρ„Π°ΠΉΠ»Π°-Π²Π΅Ρ‚Π²ΠΈ master мСняСтся Π½Π° Ρ…ΡΡˆ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.


ΠšΠΎΠΌΠΌΠΈΡ‚ a2
Π“Ρ€Π°Ρ„ Git Π±Π΅Π· Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΈ индСкса

Бвойства Π³Ρ€Π°Ρ„Π°:

β€’ Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ хранится Π² Π²ΠΈΠ΄Π΅ Π΄Π΅Ρ€Π΅Π²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π² Π±Π°Π·Π΅ хранятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния. ВзглянитС Π½Π° Π³Ρ€Π°Ρ„ свСрху. ΠšΠΎΠΌΠΌΠΈΡ‚ Π°2 ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±Π»ΠΎΠ±, сдСланный Π΄ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π°1. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, Ссли вся дирСктория ΠΎΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π΄ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π½Π΅ мСняСтся, Π½Π΅Ρ‘ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΈ всС Π±Π»ΠΎΠ±Ρ‹ ΠΈ Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ измСнСния ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ нСбольшиС. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Git ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ большиС истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², занимая Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ мСста.

β€’ Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π΅ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΠΊ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

β€’ Бсылки – Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ для Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ истории ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Π²Π°Ρ‚ΡŒ осмыслСнныС ΠΈΠΌΠ΅Π½Π°. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π²ΠΈΠ΄Π΅ родословной, осмыслСнной для своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, с ссылками Ρ‚ΠΈΠΏΠ° fix-for-bug-376. Git ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ссылки Π²Ρ€ΠΎΠ΄Π΅ HEAD, MERGE_HEAD ΠΈ FETCH_HEAD для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ рСдактирования истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

β€’ Π£Π·Π»Ρ‹ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ objects/ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ содСрТимоС рСдактируСтся, Π½ΠΎ Π½Π΅ удаляСтся. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ кусочСк содСрТимого, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сдСланный ΠΊΠΎΠΌΠΌΠΈΡ‚ хранится Π³Π΄Π΅-Ρ‚ΠΎ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ objects.

β€’ Бсылки измСняСмы. Π—Π½Π°Ρ‡ΠΈΡ‚, смысл ссылки ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ. ΠšΠΎΠΌΠΌΠΈΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ master, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅ΠΉ вСрсиСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π½ΠΎ вскорС Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.

β€’ Рабочая копия ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ссылки, доступны сразу. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ – Π½Π΅Ρ‚. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ нСдавнюю ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π»Π΅Π³Ρ‡Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ, Π½ΠΎ ΠΈ мСняСтся ΠΎΠ½Π° Ρ‡Π°Ρ‰Π΅. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΌΡΡ‚ΡŒ Git постоянно исчСзаСт, ΠΈ Π΅Ρ‘ Π½Π°Π΄ΠΎ ΡΡ‚ΠΈΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всё Π±ΠΎΠ»Π΅Π΅ Тёсткими Ρ‚Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ.

Π Π°Π±ΠΎΡ‡ΡƒΡŽ копию Π»Π΅Π³Ρ‡Π΅ всСго Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΈΠ· истории, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° находится Π² ΠΊΠΎΡ€Π½Π΅ рСпозитория. Π•Ρ‘ Π²Ρ‹Π·ΠΎΠ² Π΄Π°ΠΆΠ΅ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Git. Но Ρ‚Π°ΠΊΠΆΠ΅ это ΠΈ самая нСпостоянная Ρ‚ΠΎΡ‡ΠΊΠ° Π² истории. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ дСсяток вСрсий Ρ„Π°ΠΉΠ»Π°, Π½ΠΎ Git Π½Π΅ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ Π½ΠΈ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π½ΠΈΡ…, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹.

ΠšΠΎΠΌΠΌΠΈΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ HEAD, ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ. Он находится Π½Π° ΠΊΠΎΠ½Ρ†Π΅ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ содСрТимоС, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ просто ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ копию. И Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя, HEAD – самая часто ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰Π°ΡΡΡ ссылка.

ΠšΠΎΠΌΠΌΠΈΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ конкрСтная ссылка, Π»Π΅Π³ΠΊΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ просто ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ эту Π²Π΅Ρ‚ΠΊΡƒ. ΠšΠΎΠ½Π΅Ρ† Π²Π΅Ρ‚ΠΊΠΈ мСняСтся Ρ€Π΅ΠΆΠ΅, Ρ‡Π΅ΠΌ HEAD, Π½ΠΎ достаточно для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ смысл названия Π²Π΅Ρ‚ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ.

Π‘Π»ΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ссылки. Π§Π΅ΠΌ дальшС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ ΠΎΡ‚ ссылки, Ρ‚Π΅ΠΌ тяТСлСС Π΅ΠΌΡƒ Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ смысл ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Но Ρ‡Π΅ΠΌ дальшС Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ΅ ΠΎΠ½ ΠΈΠ΄Ρ‘Ρ‚, Ρ‚Π΅ΠΌ мСньшС Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈΡ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ просмотра.

ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ (check out) ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

~/alpha $ git checkout 37888c2
          You are in 'detached HEAD' state...

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π°2, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΅Π³ΠΎ Ρ…ΡΡˆ. (Если Π²Ρ‹ запускаСтС эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ‚ΠΎ данная ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρƒ вас Π½Π΅ сработаСт. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git log, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ Ρ…ΡΡˆ вашСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π°2).

ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ состоит ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… шагов.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Git ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π°2 ΠΈ Π³Ρ€Π°Ρ„, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚ΠΎΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚ записи ΠΎ Ρ„Π°ΠΉΠ»Π°Ρ… Π² Π³Ρ€Π°Ρ„Π΅ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ происходит. Π’ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ содСрТимоС Π³Ρ€Π°Ρ„Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ HEAD ΡƒΠΆΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π» Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ Π°2 Ρ‡Π΅Ρ€Π΅Π· master.

Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, Git Π΄Π΅Π»Π°Π΅Ρ‚ записи ΠΎ Ρ„Π°ΠΉΠ»Π°Ρ… Π² Π³Ρ€Π°Ρ„ Π² индСксС. Π’ΡƒΡ‚ Ρ‚ΠΎΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ происходит. Π’ индСксС ΡƒΠΆΠ΅ содСрТится ΠΊΠΎΠΌΠΌΠΈΡ‚ Π°2.

Π’-Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚Ρ‹Ρ…, содСрТимому HEAD присваиваСтся Ρ…ΡΡˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π°2:

f0af7e62679e144bb28c627ee3e8f7bdb235eee9

Π—Π°ΠΏΠΈΡΡŒ Ρ…ΡΡˆΠ° Π² HEAD ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² состоянии с ΠΎΡ‚Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ HEAD. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π³Ρ€Π°Ρ„Π΅ Π½ΠΈΠΆΠ΅, Ρ‡Ρ‚ΠΎ HEAD ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ нСпосрСдствСнно Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ Π°2, Π° Π½Π΅ Π½Π° master.
~/alpha $ printf '3' > data/number.txt
~/alpha $ git add data/number.txt
~/alpha $ git commit -m 'a3'
          [detached HEAD 3645a0e] a3

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ записываСт Π² содСрТимоС data/number.txt Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 3 ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. Git ΠΈΠ΄Ρ‘Ρ‚ ΠΊ HEAD для получСния родитСля ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π°3. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ссылкС Π½Π° Π²Π΅Ρ‚Π²ΡŒ, ΠΎΠ½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ…ΡΡˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π°2.

Git обновляСт HEAD, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π» Π½Π° Ρ…ΡΡˆ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π°3. Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ находится Π² состоянии с ΠΎΡ‚Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ HEAD. Он Π½Π΅ Π½Π° Π²Π΅Ρ‚Π²ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΈ Π½Π° Π°3, Π½ΠΈ Π½Π° любой ΠΈΠ· Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ². Π•Π³ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ.

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΡŒΡ ΠΈ Π±Π»ΠΎΠ±Ρ‹ ΠΈΠ· Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ Π³Ρ€Π°Ρ„ΠΎΠ².

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ (branch)

~/alpha $ git branch deputy

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ создаёт Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ deputy. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ появляСтся Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² .git/refs/heads/deputy, содСрТащий Ρ…ΡΡˆ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ HEAD: Ρ…ΡΡˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π°3.

Π’Π΅Ρ‚Π²ΠΈ – это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ссылки, Π° ссылки – это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ»Ρ‹. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚Π²ΠΈ Git вСсят ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚Π²ΠΈ deputy Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π°3 Π½Π° ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΈ. HEAD всё Π΅Ρ‰Ρ‘ ΠΎΡ‚Π΄Π΅Π»Ρ‘Π½, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всё Π΅Ρ‰Ρ‘ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ нСпосрСдствСнно Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚.

ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

~/alpha $ git checkout master
          Switched to branch 'master'

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ master.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Git ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π°2, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ master, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π³Ρ€Π°Ρ„, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Git вносит Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ записи Π² Π³Ρ€Π°Ρ„ Π² Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ. Π­Ρ‚ΠΎ мСняСт ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ data/number.txt Π½Π° 2.

Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, Git вносит Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ записи Π² Π³Ρ€Π°Ρ„ индСкса. Π­Ρ‚ΠΎ обновляСт Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ для data/number.txt Π½Π° Ρ…ΡΡˆ Π±Π»ΠΎΠ±Π° 2.

Π’-Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚Ρ‹Ρ…, Git направляСт HEAD Π½Π° master, мСняя Π΅Π³ΠΎ содСрТимоС с Ρ…ΡΡˆΠ° Π½Π°

ref: refs/heads/master

ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ, Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΡƒΡŽ с Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ

~/alpha $ printf '789' > data/number.txt
~/alpha $ git checkout deputy
          Your changes to these files would be overwritten
          by checkout:
            data/number.txt
          Commit your changes or stash them before you
          switch branches.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ случайно присваиваСт содСрТимому data/number.txt Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 789. Он пытаСтся ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ deputy. Git прСпятствуСт ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΡŽ.

HEAD ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° master, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° a2, Π³Π΄Π΅ Π² data/number.txt записано 2. deputy ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° a3, Π³Π΄Π΅ Π² data/number.txt записано 3. Π’ вСрсии Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ для data/number.txt записано 789. ВсС эти вСрсии Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹, ΠΈ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ.

Git ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ вСрсиСй ΠΈΠ· ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Но ΠΎΠ½ всСми силами ΠΈΠ·Π±Π΅Π³Π°Π΅Ρ‚ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Git ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ с ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅ΠΌΠΎΠΉ вСрсиСй. Но это слоТно.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Git отклоняСт ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅.

~/alpha $ printf '2' > data/number.txt
~/alpha $ git checkout deputy
          Switched to branch 'deputy'

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°ΠΌΠ΅Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ случайно ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π» data/number.txt ΠΈ присваиваСт Π΅ΠΌΡƒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ 2. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ deputy.

ОбъСдинСниС с ΠΏΡ€Π΅Π΄ΠΊΠΎΠΌ

~/alpha $ git merge master
          Already up-to-date.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ master Π² deputy. ОбъСдинСниС Π΄Π²ΡƒΡ… Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ объСдинСниС Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ – Ρ‚ΠΎΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ deputy: ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ – Ρ‚ΠΎΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ master: Π΄Π°ΡŽΡ‰ΠΈΠΉ. Для объСдинСния Git Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚. Он сообщаСт, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠΆΠ΅ Β«Already up-to-dateΒ».

БСрия объСдинСний Π² Π³Ρ€Π°Ρ„Π΅ интСрпрСтируСтся ΠΊΠ°ΠΊ сСрия ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ содСрТимого рСпозитория. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ объСдинСнии Ссли ΠΊΠΎΠΌΠΌΠΈΡ‚ Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ получаСтся ΠΏΡ€Π΅Π΄ΠΊΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ, Git Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚. Π­Ρ‚ΠΈ измСнСния ΡƒΠΆΠ΅ внСсСны.

ОбъСдинСниС с ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ

~/alpha $ git checkout master
          Switched to branch 'master'

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ master.
~/alpha $ git merge deputy
          Fast-forward

Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ deputy Π² master. Git ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ, Π°2, являСтся ΠΏΡ€Π΅Π΄ΠΊΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ, Π°3. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ объСдинСниС с быстрой ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠΎΠΉ Π²ΠΏΠ΅Ρ€Ρ‘Π΄.

Он Π±Π΅Ρ€Ρ‘Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΈ Π³Ρ€Π°Ρ„, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚. Он вносит Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ записи Π² Π³Ρ€Π°Ρ„Ρ‹ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΈ индСкса. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ Β«ΠΏΠ΅Ρ€Π΅ΠΌΠ°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Β» master, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π» Π½Π° Π°3.

БСрия ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π½Π° Π³Ρ€Π°Ρ„Π΅ интСрпрСтируСтся ΠΊΠ°ΠΊ сСрия ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ содСрТимого рСпозитория. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ объСдинСнии, Ссли Π΄Π°ΡŽΡ‰ΠΈΠΉ являСтся ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ, история Π½Π΅ мСняСтся. Π£ΠΆΠ΅ сущСствуСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π½ΡƒΠΆΠ½Ρ‹Π΅ измСнСния: ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΌ ΠΈ Π΄Π°ΡŽΡ‰ΠΈΠΌ. Но, хотя история Git Π½Π΅ мСняСтся, Π³Ρ€Π°Ρ„ Git мСняСтся. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π°Ρ ссылка, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ HEAD, обновляСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ.

ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… родословных

~/alpha $ printf '4' > data/number.txt
~/alpha $ git add data/number.txt
~/alpha $ git commit -m 'a4'
          [master 7b7bd9a] a4

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ записываСт 4 Π² содСрТимоС number.txt ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² master.
~/alpha $ git checkout deputy
          Switched to branch 'deputy'
~/alpha $ printf 'b' > data/letter.txt
~/alpha $ git add data/letter.txt
~/alpha $ git commit -m 'b3'
          [deputy 982dffb] b3

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ deputy. Он записываСт Β«bΒ» Π² содСрТимоС data/letter.txt ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² deputy.

Π£ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π² истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ родословныС.

Π£ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ родословныС ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ с двумя родитСлями: ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ.

~/alpha $ git merge master -m 'b4'
          Merge made by the 'recursive' strategy.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ master с deputy.

Git ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ, b3, ΠΈ Π΄Π°ΡŽΡ‰ΠΈΠΉ, a4, находятся Π² Ρ€Π°Π·Π½Ρ‹Ρ… родословных. Он выполняСт ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚. Π£ этого процСсса восСмь шагов.

1. Git записываСт Ρ…ΡΡˆ Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² Ρ„Π°ΠΉΠ» alpha/.git/MERGE_HEAD. НаличиС этого Ρ„Π°ΠΉΠ»Π° сообщаСт Git, Ρ‡Ρ‚ΠΎ ΠΎΠ½ находится Π² процСссС объСдинСния.

2. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Git Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚: самый Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€Π΅Π΄ΠΎΠΊ, ΠΎΠ±Ρ‰ΠΈΠΉ для Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

Π£ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π΅ΡΡ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΎΡ‡ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ»ΠΈΡΡŒ Π΄Π²Π΅ родословных. Git отслСТиваСт Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Π½Π°Π·Π°Π΄ ΠΎΡ‚ b3, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ всСх Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΠΊΠΎΠ², ΠΈ Π½Π°Π·Π°Π΄ ΠΎΡ‚ a4 с Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ†Π΅Π»ΡŒΡŽ. Он Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ самого Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ· ΠΈΡ… ΠΎΠ±Ρ‰ΠΈΡ… ΠΏΡ€Π΅Π΄ΠΊΠΎΠ², Π°3. Π­Ρ‚ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.

3. Git ΡΠΎΠ·Π΄Π°ΡŽΡ‚ индСксы для Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ, Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈΠ· ΠΈΡ… Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΎΠ².

4. Git создаёт diff, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠΉ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ ΠΈ Π΄Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π»ΠΈ с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ. Π­Ρ‚ΠΎΡ‚ diff – список ΠΏΡƒΡ‚Π΅ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ², ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π½Π° измСнСния: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹.

Git ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ список всСх Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π² индСксах Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΈ Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ½ сравниваСт записи Π² индСксах ΠΈ Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ». Он ΠΏΠΈΡˆΠ΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ запись Π² diff. Π’ нашСм случаС Π² diff ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π΄Π²Π΅ записи.

ΠŸΠ΅Ρ€Π²Π°Ρ запись для data/letter.txt. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ этого Ρ„Π°ΠΉΠ»Π° – Β«aΒ» Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ, Β«bΒ» Π² ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΌ ΠΈ Β«aΒ» Π² Π΄Π°ΡŽΡ‰Π΅ΠΌ. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρƒ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ различаСтся. Но Ρƒ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ – совпадаСт. Git Π²ΠΈΠ΄ΠΈΡ‚, Ρ‡Ρ‚ΠΎ содСрТимоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΌ, Π° Π½Π΅ Π΄Π°ΡŽΡ‰ΠΈΠΌ. Π—Π°ΠΏΠΈΡΡŒ Π² diff для data/letter.txt – это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π° Π½Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚.

Вторая запись Π² diff – для data/number.txt. Π’ этом случаС, содСрТимоС совпадаСт Ρƒ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ, Π° Ρƒ Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π—Π°ΠΏΠΈΡΡŒ Π² diff для data/number.txt β€” Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅.

Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΠΉΡ‚ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ объСдинСния. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ссли Ρ„Π°ΠΉΠ» отличаСтся ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΌ ΠΈΠ»ΠΈ Π΄Π°ΡŽΡ‰Π΅ΠΌ, Git ΠΌΠΎΠΆΠ΅Ρ‚ автоматичСски провСсти объСдинСниС Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ.

5. ИзмСнСния, описанныС записями Π² diff, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠΌΡƒ data/letter.txt присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ b, Π° содСрТимому data/number.txt – 4.

6. ИзмСнСния, описанныС записями Π² diff, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ индСксу. Π—Π°ΠΏΠΈΡΡŒ, относящаяся ΠΊ data/letter.txt, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π±Π»ΠΎΠ± b, Π° запись для data/number.txt – Π½Π° Π±Π»ΠΎΠ± 4.

7. ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹ΠΉ индСкс:

tree 20294508aea3fb6f05fcc49adaecc2e6d60f7e7d
parent 982dffb20f8d6a25a8554cc8d765fb9f3ff1333b
parent 7b7bd9a5253f47360d5787095afc5ba56591bfe7
author Mary Rose Cook <[email protected]> 1425596551 -0500
committer Mary Rose Cook <[email protected]> 1425596551 -0500

b4

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π΄Π²Π° родитСля.

8. Git направляСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ, deputy, Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.

ОбъСдинСниС Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… родословных, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ… ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ»

~/alpha $ git checkout master
          Switched to branch 'master'
~/alpha $ git merge deputy
          Fast-forward

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ master. Он ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ deputy ΠΈ master. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠ΅ master Π΄ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° b4. Π’Π΅ΠΏΠ΅Ρ€ΡŒ master ΠΈ deputy ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚.
~/alpha $ git checkout deputy
          Switched to branch 'deputy'
~/alpha $ printf '5' > data/number.txt
~/alpha $ git add data/number.txt
~/alpha $ git commit -m 'b5'
          [deputy bd797c2] b5

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ deputy. Он устанавливаСт содСрТимоС data/number.txt Π² 5 ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² deputy.
~/alpha $ git checkout master
          Switched to branch 'master'
~/alpha $ printf '6' > data/number.txt
~/alpha $ git add data/number.txt
~/alpha $ git commit -m 'b6'
          [master 4c3ce18] b6

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ master. Он устанавливаСт содСрТимоС data/number.txt Π² 6 ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² master.
~/alpha $ git merge deputy
          CONFLICT in data/number.txt
          Automatic merge failed; fix conflicts and
          commit the result.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ deputy ΠΈ master. ВыявляСтся ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈ объСдинСниС приостанавливаСтся. ΠŸΡ€ΠΎΡ†Π΅ΡΡ объСдинСния с ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠΌ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π΅ ΠΆΠ΅ ΡˆΠ΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… шагов, Ρ‡Ρ‚ΠΎ ΠΈ процСсс объСдинСния Π±Π΅Π· ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°: ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ .git/MERGE_HEAD, Π½Π°ΠΉΡ‚ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ индСксы для Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΈ Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ diff, ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ копию ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ индСкс. Из-Π·Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° сСдьмой шаг с ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ ΠΈ восьмой с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ссылки Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ. ΠŸΡ€ΠΎΠΉΠ΄Ρ‘ΠΌ ΠΏΠΎ Π½ΠΈΠΌ Π·Π°Π½ΠΎΠ²ΠΎ ΠΈ посмотрим, Ρ‡Ρ‚ΠΎ получаСтся.

1. Git записываСт Ρ…ΡΡˆ Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² Ρ„Π°ΠΉΠ» .git/MERGE_HEAD.

2. Git Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, b4.

3. Git Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ индСксы для Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΈ Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

4. Git Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ diff, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ измСнСния Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΌ ΠΈ Π΄Π°ΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ. Π­Ρ‚ΠΎΡ‚ diff – список ΠΏΡƒΡ‚Π΅ΠΉ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Π½Π° измСнСния: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚.

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС diff содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ запись: data/number.txt. Она ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π° ΠΊΠ°ΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ содСрТимоС data/number.txt отличаСтся Π² Π΄Π°ΡŽΡ‰Π΅ΠΌ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΌ ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ….

5. ИзмСнСния, опрСдСляСмыС записями Π² diff, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ. Π’ области ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° Git Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΠ±Π΅ вСрсии Π² Ρ„Π°ΠΉΠ» Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»Π° ata/number.txt становится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

<<<<<<< HEAD
6
=======
5
>>>>>>> deputy

6. ИзмСнСния, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ записями Π² diff, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ индСксу. Записи Π² индСксС ΠΈΠΌΠ΅ΡŽΡ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΈ этапа. Π£ записи Ρ„Π°ΠΉΠ»Π° Π±Π΅Π· ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° этап Ρ€Π°Π²Π΅Π½ 0. ΠŸΠ΅Ρ€Π΅Π΄ объСдинСниСм индСкс выглядСл Ρ‚Π°ΠΊ, Π³Π΄Π΅ Π½ΡƒΠ»ΠΈ – это Π½ΠΎΠΌΠ΅Ρ€Π° этапов:
0 data/letter.txt 63d8dbd40c23542e740659a7168a0ce3138ea748
0 data/number.txt 62f9457511f879886bb7728c986fe10b0ece6bcb

ПослС записи diff Π² индСкс Ρ‚ΠΎΡ‚ выглядит ΡƒΠΆΠ΅ Ρ‚Π°ΠΊ:
0 data/letter.txt 63d8dbd40c23542e740659a7168a0ce3138ea748
1 data/number.txt bf0d87ab1b2b0ec1a11a3973d2845b42413d9767
2 data/number.txt 62f9457511f879886bb7728c986fe10b0ece6bcb
3 data/number.txt 7813681f5b41c028345ca62a2be376bae70b7f61

Π—Π°ΠΏΠΈΡΡŒ data/letter.txt Π½Π° этапС 0 такая ΠΆΠ΅, какая ΠΈ Π±Ρ‹Π»Π° Π΄ΠΎ объСдинСния. Π—Π°ΠΏΠΈΡΡŒ для data/number.txt с этапом 0 исчСзла. ВмСсто Π½Π΅Ρ‘ появились Ρ‚Ρ€ΠΈ Π½ΠΎΠ²Ρ‹Ρ…. Π£ записи с этапом 1 Ρ…ΡΡˆ ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ содСрТимого data/number.txt. Π£ записи с этапом 3 Ρ…ΡΡˆ ΠΎΡ‚ содСрТимого Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ data/number.txt. ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Ρ‚Ρ€Ρ‘Ρ… записСй Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Git, Ρ‡Ρ‚ΠΎ для data/number.txt Π²ΠΎΠ·Π½ΠΈΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚.

ОбъСдинСниС приостанавливаСтся.

~/alpha $ printf '11' > data/number.txt
~/alpha $ git add data/number.txt

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ содСрТимоС Π΄Π²ΡƒΡ… ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΡ… вСрсий, устанавливая содСрТимоС data/number.txt Ρ€Π°Π²Π½Ρ‹ΠΌ 11. Он добавляСт Ρ„Π°ΠΉΠ» Π² индСкс. Git добавляСт Π±Π»ΠΎΠ±, содСрТащий 11. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Git ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Ρ€Π΅ΡˆΡ‘Π½. Git удаляСт вхоТдСния data/number.txt для этапов 1, 2 ΠΈ 3 ΠΈΠ· индСкса. Он добавляСт запись для data/number.txt Π½Π° этапС 0 с Ρ…ΡΡˆΠ΅ΠΌ ΠΎΡ‚ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠ±Π°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ индСкс содСрТит записи:
0 data/letter.txt 63d8dbd40c23542e740659a7168a0ce3138ea748
0 data/number.txt 9d607966b721abde8931ddd052181fae905db503

~/alpha $ git commit -m 'b11'
          [master 251a513] b11

7. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚. Git Π²ΠΈΠ΄ΠΈΡ‚ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ .git/MERGE_HEAD, Ρ‡Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π΅ΠΌΡƒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ объСдинСниС находится Π² процСссС. Он провСряСт индСкс ΠΈ Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ². Он создаёт Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, b11, для записи содСрТимого Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½ΠΎΠ³ΠΎ объСдинСния. Он удаляСт Ρ„Π°ΠΉΠ» .git/MERGE_HEAD. Π­Ρ‚ΠΎ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ объСдинСниС.

8. Git направляСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ, master, Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°


Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° для Π³Ρ€Π°Ρ„Π° Git Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π΄Π΅Ρ€Π΅Π²ΡŒΡ ΠΈ Π±Π»ΠΎΠ±Ρ‹ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ копию ΠΈ индСкс:
~/alpha $ git rm data/letter.txt
          rm 'data/letter.txt'

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Git ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ data/letter.txt. Π€Π°ΠΉΠ» удаляСтся ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ. Из индСкса удаляСтся запись.
~/alpha $ git commit -m '11'
          [master d14c7d2] 11

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚. Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, Git строит Π³Ρ€Π°Ρ„, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ содСрТимоС индСкса. data/letter.txt Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Π² Π³Ρ€Π°Ρ„, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π³ΠΎ Π½Π΅Ρ‚ Π² индСксС.

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

~/alpha $ cd ..
      ~ $ cp -R alpha bravo

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ содСрТимоС рСпозитория alpha/ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ bravo/. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ структурС:
~
β”œβ”€β”€ alpha
|   └── data
|       └── number.txt
└── bravo
    └── data
        └── number.txt

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ bravo Π΅ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Π³Ρ€Π°Ρ„ Git:

Π‘Π²ΡΠ·Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ

      ~ $ cd alpha
~/alpha $ git remote add bravo ../bravo

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ возвращаСтся Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ alpha. Он Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ bravo ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ для alpha. Π­Ρ‚ΠΎ добавляСт нСсколько строк Π² Ρ„Π°ΠΉΠ» alpha/.git/config:
[remote "bravo"]
	url = ../bravo/

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ говорят, Ρ‡Ρ‚ΠΎ сущСствуСт ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ bravo Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ../bravo.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ с ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ рСпозитория

~/alpha $ cd ../bravo
~/bravo $ printf '12' > data/number.txt
~/bravo $ git add data/number.txt
~/bravo $ git commit -m '12'
          [master 94cd04d] 12

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ bravo. Он присваиваСт содСрТимому data/number.txt Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 12 ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² master Π½Π° bravo.
~/bravo $ cd ../alpha
~/alpha $ git fetch bravo master
          Unpacking objects: 100%
          From ../bravo
            * branch master -> FETCH_HEAD

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ alpha. Он ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ master ΠΈΠ· bravo Π² alpha. Π£ этого процСсса Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ шага.

1. Git ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ…ΡΡˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² bravo ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ master. Π­Ρ‚ΠΎ Ρ…ΡΡˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° 12.

2. Git составляСт список всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… зависит ΠΊΠΎΠΌΠΌΠΈΡ‚ 12: сам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Π΅Π³ΠΎ Π³Ρ€Π°Ρ„Π΅, ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΡ€Π΅Π΄ΠΊΠ° ΠΊΠΎΠΌΠΌΠΈΡ‚Π° 12, ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ· ΠΈΡ… Π³Ρ€Π°Ρ„ΠΎΠ². Он удаляСт ΠΈΠ· этого списка всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π² Π±Π°Π·Π΅ alpha. ΠžΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ½ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π² alpha/.git/objects/.

3. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠΌΡƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ссылки Π² alpha/.git/refs/remotes/bravo/master присваиваСтся Ρ…ΡΡˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° 12.

4. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ alpha/.git/FETCH_HEAD становится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

94cd04d93ae88a1f53a4646532b1e8cdfbc0977f branch 'master' of ../bravo

Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ самая послСдняя ΠΊΠΎΠΌΠ°Π½Π΄Π° fetch достала ΠΊΠΎΠΌΠΌΠΈΡ‚ 12 ΠΈΠ· master с bravo.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρƒ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ общая история.

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ссылки Π½Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ Π²Π΅Ρ‚Π²ΠΈ Ρ‚ΠΈΠΏΠ° alpha/.git/refs/remotes/bravo/master. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ локально Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ состояниС Π²Π΅Ρ‚Π²ΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ рСпозитория. Он ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π΅Π½ Π²ΠΎ врСмя Π΅Π³ΠΎ копирования, Π½ΠΎ станСт ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ Π² случаС измСнСния ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ.

ОбъСдинСниС FETCH_HEAD

~/alpha $ git merge FETCH_HEAD
          Updating d14c7d2..94cd04d
          Fast-forward

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ FETCH_HEAD. FETCH_HEAD – это просто Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° ссылка. Она ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ 12, Π΄Π°ΡŽΡ‰ΠΈΠΉ. HEAD ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ 11, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ. Git Π΄Π΅Π»Π°Π΅Ρ‚ объСдинСниС-ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΡƒ ΠΈ направляСт master Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ 12.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ рСпозитория

~/alpha $ git pull bravo master
          Already up-to-date.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ пСрСносит master ΠΈΠ· bravo Π² alpha. Pull – это сокращСниС для Β«ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ FETCH_HEADΒ». Git выполняСт ΠΎΠ±Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ сообщаСт, Ρ‡Ρ‚ΠΎ master Β«Already up-to-dateΒ».

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

~/alpha $ cd ..
      ~ $ git clone alpha charlie
          Cloning into 'charlie'

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅Π΅Π·ΠΆΠ°Π΅Ρ‚ Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Он ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ alpha Π² charlie. ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ, сходным с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ cp, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» для создания рСпозитория bravo. Git создаёт Π½ΠΎΠ²ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ charlie. Он ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ charlie Π² качСствС рСпозитория, добавляСт alpha Π² качСствС ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ origin, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ origin ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ FETCH_HEAD.

Π Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ (push) Π²Π΅Ρ‚Π²ΡŒ Π½Π° ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Ρ‘Π½Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ Π½Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

      ~ $ cd alpha
~/alpha $ printf '13' > data/number.txt
~/alpha $ git add data/number.txt
~/alpha $ git commit -m '13'
          [master 3238468] 13

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ возвращаСтся Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ alpha. ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ‚ содСрТимому data/number.txt Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 13 ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² master Π½Π° alpha.
~/alpha $ git remote add charlie ../charlie

Он Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ charlie ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ alpha.
~/alpha $ git push charlie master
          Writing objects: 100%
          remote error: refusing to update checked out
          branch: refs/heads/master because it will make
          the index and work tree inconsistent

Он Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ master Π½Π° charlie. ВсС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для ΠΊΠΎΠΌΠΌΠΈΡ‚Π° 13, ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² charlie.

Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ процСсс размСщСния останавливаСтся. Git, ΠΊΠ°ΠΊ всСгда, сообщаСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Ρ‡Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ. Он отказываСтся Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π½Π° Π²Π΅Ρ‚Π²ΠΈ, которая ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎ. Π­Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл. Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΎ Π±Ρ‹ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ индСкс ΠΈ HEAD. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ Π±Ρ‹ ΠΊ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π΅, Ссли Π±Ρ‹ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Ρ‘ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π» Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ копию Π½Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ 13 с Π½Π΅ΠΉ ΠΈ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ эту Π²Π΅Ρ‚Π²ΡŒ Π½Π° charlie. Но ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ трСбуСтся Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Им Π½ΡƒΠΆΠ΅Π½ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ, ΠΈ с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ (pull), Π½ΠΎ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚. Им Π½ΡƒΠΆΠ½ΠΎ Π½Π΅Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏΠ° ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ GitHub. Им Π½ΡƒΠΆΠ΅Π½ чистый (bare) Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅ΠΌ чистый (bare) Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

~/alpha $ cd ..
      ~ $ git clone alpha delta --bare
          Cloning into bare repository 'delta'

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ. Он создаёт ΠΊΠ»ΠΎΠ½ delta Π² качСствС чистого рСпозитория. Π­Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΊΠ»ΠΎΠ½ с двумя особСнностями. Π€Π°ΠΉΠ» config Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ чистый. И Ρ„Π°ΠΉΠ»Ρ‹, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ хранящиСся Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ .git, хранятся Π² ΠΊΠΎΡ€Π½Π΅ рСпозитория:
delta
β”œβ”€β”€ HEAD
β”œβ”€β”€ config
β”œβ”€β”€ objects
└── refs

Π Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ Π² чистом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

      ~ $ cd alpha
~/alpha $ git remote add delta ../delta

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ возвращаСтся Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ alpha. Он Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ delta ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ для alpha.
~/alpha $ printf '14' > data/number.txt
~/alpha $ git add data/number.txt
~/alpha $ git commit -m '14'
          [master cb51da8] 14

Он присваиваСт содСрТимому Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 14 ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² master Π½Π° alpha.
~/alpha $ git push delta master
          Writing objects: 100%
          To ../delta
            3238468..cb51da8 master -> master

Он Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ master Π² delta. Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ‚Ρ€ΠΈ этапа.

1. ВсС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для ΠΊΠΎΠΌΠΌΠΈΡ‚Π° 14 Π½Π° Π²Π΅Ρ‚Π²ΠΈ master, ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ· alpha/.git/objects/ Π² delta/objects/.

2. delta/refs/heads/master обновляСтся Π΄ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° 14.

3. alpha/.git/refs/remotes/delta/master Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ 14. Π’ alpha находится Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ запись состояния delta.


Π˜Ρ‚ΠΎΠ³


Git построСн Π½Π° Π³Ρ€Π°Ρ„Π΅. ΠŸΠΎΡ‡Ρ‚ΠΈ всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Git ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ этим Π³Ρ€Π°Ρ„ΠΎΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ Git, ΡΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ Π½Π° свойствах Π³Ρ€Π°Ρ„Π°, Π° Π½Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ… ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ….

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Git Π΅Ρ‰Ρ‘ большС, ΠΈΠ·ΡƒΡ‡Π°ΠΉΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ .git. Π­Ρ‚ΠΎ Π½Π΅ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ. ЗаглянитС Π²ΠΎΠ²Π½ΡƒΡ‚Ρ€ΡŒ. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ содСрТимоС Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ посмотритС, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ сильно Π²Ρ‹ смоТСтС ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΡ‡ΠΈΠ½ΠΈΡ‚Π΅ Π΅Π³ΠΎ.

Git Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ / Π₯Π°Π±Ρ€

БущСствуСт Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΊΠ½ΠΈΠ³Π° Pro Git, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описаны всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ возмоТности Π³ΠΈΡ‚Π°. Но послС Π΅Π΅ прочтСния Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… остаСтся Π½Π΅ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ это всС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. Π’ частности, Ρƒ программистов Ρ€Π°Π·Π½ΠΎΠ³ΠΎ уровня часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ вопросы ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π² Git, ΠΊΠΎΠ³Π΄Π° ΠΈΡ… Π·Π°Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой. ΠŸΠΎΡ€ΠΎΠΉ ΠΌΠ½Π΅ попадались ΠΎΡ‡Π΅Π½ΡŒ Β«ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅Β» ΠΈ Π½Π΅ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π½ΠΎ услоТнСнныС схСмы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π³ΠΈΡ‚ΠΎΠΌ. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π² сообщСствС программистов ΡƒΠΆΠ΅ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ схСма Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π³ΠΈΡ‚ΠΎΠΌ ΠΈ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π² Π½Π΅ΠΌ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Ρ…ΠΎΡ‡Ρƒ Π΄Π°Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ основных ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Git, ΠΈ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Β«ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽΒ» схСму Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ. МногоС ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ описано Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ справСдливо ΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм управлСния вСрсиями.

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для программистов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΎΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Git, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΡƒΡŽ систСму управлСния вСрсиями. Для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… программистов эта ΡΡ‚Π°Ρ‚ΡŒΡ покаТСтся ΠΎΡ‡Π΅Π½ΡŒ простой ΠΈ банальной.

Для Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся с Ρ‚Π΅ΠΌ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π²Π΅Ρ‚ΠΊΠ° ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚.

ΠšΠΎΠΌΠΌΠΈΡ‚


МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ это основной ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² любой систСмС управлСния вСрсиями. Π’ Π½Π΅ΠΌ содСрТится описаниС Ρ‚Π΅Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вносит ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π² ΠΊΠΎΠ΄ прилоТСния. Π’ Git ΠΊΠΎΠΌΠΌΠΈΡ‚ состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Для простоты понимания ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ это односвязный список, состоящий ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΈ ссылка Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.

Π£ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ свойства. НапримСр, Π΄Π°Ρ‚Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π°Π²Ρ‚ΠΎΡ€, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ ΠΈ Ρ‚.ΠΏ.
Π’ качСствС коммСнтария ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‚Π΅ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вносит этот ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ Ρ€Π΅ΡˆΠ°Π΅Ρ‚.

Git это распрСдСлСнная систСма управлСния вСрсиями. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ участника ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ΡΡ‚ΡŒ своя копия рСпозитория, которая Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ β€œ.git”, которая располоТСна Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ИмСнно Π² этой ΠΏΠ°ΠΏΠΊΠ΅ хранятся всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Git. Когда Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Git, ΠΎΠ½ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с этой ΠΏΠ°ΠΏΠΊΠΎΠΉ.

ЗавСсти Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΎΡ‡Π΅Π½ΡŒ просто, это дСлаСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

git init

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρƒ вас ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π½ΠΎΠ²Ρ‹ΠΉ пустой Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² свою Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория. ДСлаСтся это Ρ‚Π°ΠΊ:

git clone <url ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория>

ПослС Ρ‡Π΅Π³ΠΎ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ появляСтся дирСктория .git Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ копия ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория.

БущСствуСт нСсколько основных областСй Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΊΠΎΠ΄.

  • Рабочая дирСктория – это Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅.
  • Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ β€” ΠΎΠ½Π° ΠΆΠ΅ дирСктория β€œ.git”. Π’ Π½Π΅ΠΉ хранятся ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.
  • Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ – Ρ‚ΠΎΡ‚ самый Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ считаСтся ΠΎΠ±Ρ‰ΠΈΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ свои ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· локального рСпозитория, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ программисты ΠΌΠΎΠ³Π»ΠΈ ΠΈΡ… ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ. Π£Π΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько, Π½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½.
  • Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, с ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊ называСмая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (staging area). Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ измСнСния Π² ΠΊΠΎΠΌΠΌΠΈΡ‚, Π½ΡƒΠΆΠ½ΠΎ Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² этот ΠΊΠΎΠΌΠΌΠΈΡ‚. Π’ своСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ², Π½ΠΎ Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π½Π΅ всС эти измСнСния.

Π’ Ρ†Π΅Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π° с Π³ΠΈΡ‚ΠΎΠΌ выглядит Ρ‚Π°ΠΊ: Π²Ρ‹ мСняСтС Ρ„Π°ΠΉΠ»Ρ‹ Π² своСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π·Π°Ρ‚Π΅ΠΌ добавляСтС эти измСнСния Π² staging area ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

git add <имя/Ρ„Π°ΠΉΠ»Π°>

ΠŸΡ€ΠΈ этом ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ маски со Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΎΠΉ.
ΠŸΠΎΡ‚ΠΎΠΌ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² свой Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

git commit –m β€œΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ коммиту”

Когда ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π½Π°ΠΊΠΎΠΏΠΈΡ‚ΡŒΡΡ достаточно ΠΌΠ½ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ, Π²Ρ‹ выполняСтС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

git push

ПослС Ρ‡Π΅Π³ΠΎ ваши ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ уходят Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Если Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ измСнСния ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

git pull

ПослС этого, Π² вашСм локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ появятся Ρ‚Π΅ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ программистами.

Код Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° образуСтся ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ…. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π΅ΡΡ‚ΡŒ своС имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ прСдставляСт собой Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ…Π΅Ρˆ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sha-1 ΠΎΡ‚ содСрТимого самого ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

git log

Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Π° этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Ρƒ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π΅Π½. Π’ΠΎΡ‚ такая ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ Π² Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌ Π²ΠΈΠ΄Π΅

git log --pretty=format:"%H [%cd]: %an - %s" --graph --date=format:%c

Π§Ρ‚ΠΎ Π±Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ просмотр Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒ q
ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ staging area ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

git status

Π Π°Π±ΠΎΡ‡ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ состояниС Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

git checkout <hash ΠΊΠΎΠΌΠΌΠΈΡ‚Π°>

Волько ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ git status ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π½Π΅ зафиксированных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π˜Π½Π°Ρ‡Π΅ Git Π½Π΅ ΠΏΠΎΠΉΠΌΠ΅Ρ‚, ΠΊΠ°ΠΊ Π΅ΠΌΡƒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ. git status подскаТСт Π²Π°ΠΌ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ измСнСниями Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ. Π­Ρ‚ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π° слСдуСт ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΏΡ€ΠΈ всяких Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ… Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области.

Π’Π΅Ρ‚ΠΊΠ°


Π’Π΅Ρ‚ΠΊΠ° Π² Git это ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π²Π΅Ρ‚ΠΊΠ° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π’Π΅Ρ‚ΠΊΠ° Π±Π΅Ρ€Π΅Ρ‚ своС Π½Π°Ρ‡Π°Π»ΠΎ ΠΎΡ‚ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ это ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ.

Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

git pull
git checkout –b <имя Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ>

ΠŸΡ€ΠΎΡΡ‚ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ, Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΡΡΡŒ Π½Π° Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

git branch <имя Π²Π΅Ρ‚ΠΊΠΈ>

ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ

git checkout <имя Π²Π΅Ρ‚ΠΊΠΈ>

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ° Π±Π΅Ρ€Π΅Ρ‚ своС Π½Π°Ρ‡Π°Π»ΠΎ Π½Π΅ ΠΎΡ‚ Π²Π΅Ρ‚ΠΊΠΈ, Π° ΠΎΡ‚ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ.

Π’Π΅Ρ‚ΠΊΠ° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ заканчиваСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ merge ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΡƒ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ с ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ. Π’ merge ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ содСрТатся Π΄Π²Π΅ ссылки Π½Π° Π΄Π²Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ‚ΠΊΡƒ.

БущСствуСт другая ситуация ΠΏΡ€ΠΈ объСдинСнии Π²Π΅Ρ‚ΠΎΠΊ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ merge ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ Π±Π΅Π· merge commit. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ссли Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π²Π΅Ρ‚ΠΎΠΊ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² merge commit с двумя ΠΏΡ€Π΅Π΄ΠΊΠ°ΠΌΠΈ ΠΎΡ‚ΠΏΠ°Π΄Π°Π΅Ρ‚. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС, ΠΏΡ€ΠΈ слиянии Π²Π΅Ρ‚ΠΎΠΊ, Git просто сдСлаСт ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΡƒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ дальшС Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ΄Ρ‚ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Ρ‚ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ эта Π²Π΅Ρ‚ΠΊΠ° Π±Ρ‹Π»Π° объСдинСна. Вакая схСма merge называСтся слияниС-ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠ° (fast-forward merge), Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ это ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ.

Π’ΠΎ всСх этих случаях, послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Π΅Ρ‚ΠΊΠ° ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ΡΡ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ, всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ сдСланныС Π² Π½Π΅ΠΉ, ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² Π²Π΅Ρ‚ΠΊΡƒ с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½Π° Π±Ρ‹Π»Π° объСдинСна. Π’Π°ΠΊ ΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ merge это Π½Π΅ двунаправлСнная опСрация. Если ΡΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π·Π°Π΄Π°Ρ‡ΠΈ Π² мастСр Π²Π΅Ρ‚ΠΊΡƒ, Ρ‚ΠΎ Π² мастСр Π²Π΅Ρ‚ΠΊΠ΅ появится ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находился Π² Π²Π΅Ρ‚ΠΊΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Π° Π² Π²Π΅Ρ‚ΠΊΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ· мастСр Π²Π΅Ρ‚ΠΊΠΈ. Если Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹ это ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, Π½ΡƒΠΆΠ½ΠΎ ΡΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ мастСр Π²Π΅Ρ‚ΠΊΡƒ Π² Π²Π΅Ρ‚ΠΊΡƒ Π·Π°Π΄Π°Ρ‡ΠΈ.
Π§Ρ‚ΠΎ Π±Ρ‹ ΡΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ‚ΠΊΡƒ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ‚Ρƒ Π²Π΅Ρ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ

git checkout <имя Π²Π΅Ρ‚ΠΊΠΈ>

ΠŸΠΎΡ‚ΠΎΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послСдниС измСнСния сдСланныС Π² этой Π²Π΅Ρ‚ΠΊΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ²

git pull

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

git merge <имя Π²Π΅Ρ‚ΠΊΠΈ>

Π’Π°ΠΊ выглядит Ρ€Π°Π±ΠΎΡ‚Π° с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ….

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π·Π°Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ git pull. ДСлаСтся это ΠΏΠΎ нСскольким ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ.

  • Π”Ρ€ΡƒΠ³ΠΎΠΉ программист ΠΌΠΎΠ³ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, Π² Ρ‚ΠΎΠΌ числС внСсти Ρ‚Π°ΠΊΠΈΠ΅ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π·Π°Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π­Ρ‚ΠΈ измСнСния ΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ своСй Π·Π°Π΄Π°Ρ‡ΠΈ.
  • Из-Π·Π° этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΏΡ€ΠΈ ΠΌΠ΅Ρ€ΠΆΠ΅.
  • Π‘ΠΎΠ»ΡŒΡˆΠ΅ шанс Ρ‡Ρ‚ΠΎ Ρƒ вас получится merge commit. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ ΠΏΠ»ΠΎΡ…ΠΎ, ΠΊΠ°ΠΊ Π΄Π²Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡƒΠ½ΠΊΡ‚Π°. Но Ссли ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ лишнСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Ρ‚ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ этого Π½Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ?

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ схСмы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π² Git

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ популярныС схСмы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π² Π³ΠΈΡ‚Π΅.

Π’Π΅Ρ‚ΠΊΠΈ Π½ΡƒΠΆΠ½Ρ‹ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ программисты ΠΌΠΎΠ³Π»ΠΈ вСсти ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈ Π½Π΅ ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ ΠΏΡ€ΠΈ этом. ΠŸΡ€ΠΈ создании ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Git создаСт Π±Π°Π·ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Она называСтся master Π²Π΅Ρ‚ΠΊΠΎΠΉ. Она считаСтся Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ, Ρ‚.Π΅. Π² Π½Π΅ΠΉ содСрТится основной ΠΊΠΎΠ΄ прилоТСния.

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠ°Ρ схСма Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ


ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π²Π·ΡΡ‚ΡŒΡΡ Π·Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡ΠΈ, программист Π·Π°Π²ΠΎΠ΄ΠΈΡ‚ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΎΡ‚ послСднСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° мастСр Π²Π΅Ρ‚ΠΊΠΈ ΠΈ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ Π² этой Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅. Π’ Ρ…ΠΎΠ΄Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚ ряд ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², послС этого тСстируСт ΠΊΠΎΠ΄ нСпосрСдствСнно Π² Π²Π΅Ρ‚ΠΊΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ. А послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π·Π°Π΄Π°Ρ‡Π° Ρ€Π΅ΡˆΠ΅Π½Π°, Π΄Π΅Π»Π°ΡŽΡ‚ merge ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² мастСр Π²Π΅Ρ‚ΠΊΡƒ. Π’Π°ΠΊΡƒΡŽ схСму Ρ€Π°Π±ΠΎΡ‚Ρ‹ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ с ΡŽΠ½ΠΈΡ‚ тСстами ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ. Если ΡŽΠ½ΠΈΡ‚ тСсты Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ вСсь ΠΊΠΎΠ΄, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄Π΅ΠΏΠ»ΠΎΠΉ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π²Π½Π°Ρ‡Π°Π»Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ³ΠΎΠ½ΡΡ‚ΡŒΡΡ всС тСсты Π² Π²Π΅Ρ‚ΠΊΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ. А послС этого, Ссли ΠΎΠ½ΠΈ ΠΏΡ€ΠΎΡˆΠ»ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ merge ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΉ схСмС ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ»Π½ΠΎΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ тСстировании ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΈ.

ИмСнная Π²Π΅Ρ‚ΠΊΠ°


НСопытныС программисты заводят сСбС ΠΈΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ всСгда Π² Π½Π΅ΠΉ. Они Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π·Π° Ρ€Π°Π·, ΠΈ ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π·Π°Π΄Π°Ρ‡, Π΄Π΅Π»Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ Pull запрос Ρ‡Π΅Ρ€Π΅Π· Web интСрфСйсС (ΠΎΠ± этом Ρ‡ΡƒΡ‚ΡŒ Π½ΠΈΠΆΠ΅). НСдостаток этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈ нСльзя быстро ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ нСдостаток Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠΈ Ρ‚Π°ΠΊ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ всС сильнСС Ρ€Π°ΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΈ ΠΊΠΎΠ΄ Π² Π²Π΅Ρ‚ΠΊΠ΅ программиста Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ устарССт ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мастСр Π²Π΅Ρ‚ΠΊΠΈ ΠΈ Π΅Π³ΠΎ придСтся ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ. Для этого ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΡΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ мастСр Π²Π΅Ρ‚ΠΊΡƒ Π² Π²Π΅Ρ‚ΠΊΡƒ программиста, Π»ΠΈΠ±ΠΎ завСсти Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ для этого программиста ΠΎΡ‚ послСднСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ состояния Π² мастСр Π²Π΅Ρ‚ΠΊΠ΅. ΠŸΡ€Π°Π²Π΄Π° ΠΊ Ρ‚ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠ°ΠΊ это ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ программист ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Π³ΠΈΡ‚ Π² достаточной ΠΌΠ΅Ρ€Π΅ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° β€œΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽβ€ схСму Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ эта схСма ΠΈΠΌΠ΅Π΅Ρ‚ мСсто Π±Ρ‹Ρ‚ΡŒ для Π½Π΅ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Git.

Π‘Ρ…Π΅ΠΌΠ° с dev Π²Π΅Ρ‚ΠΊΠΎΠΉ


Другая схСма ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π½Π΅ΠΉ ΠΏΠΎΠΌΠΈΠΌΠΎ мастСр Π²Π΅Ρ‚ΠΊΠΈ Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ дСвСлопСрская Π²Π΅Ρ‚ΠΊΠ°, которая дСплоится Π½Π° тСстовый сСрвСр. Π’Π°ΠΊΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ dev. Π‘Ρ…Π΅ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈ этом такая. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π·Π°Π²ΠΎΠ΄ΠΈΡ‚ для Π½Π΅Π΅ Π²Π΅Ρ‚ΠΊΡƒ ΠΎΡ‚ послСднСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ состояния Π² мастСр Π²Π΅Ρ‚ΠΊΠ΅. Когда ΠΎΠ½ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, Ρ‚ΠΎ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ Π²Π΅Ρ‚ΠΊΡƒ Π·Π°Π΄Π°Ρ‡ΠΈ Π² dev Π²Π΅Ρ‚ΠΊΡƒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. ПослС этого, совмСстными усилиями Π·Π°Π΄Π°Ρ‡Π° тСстируСтся Π½Π° тСстовом сСрвСрС вмСстС с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. Если Π΅ΡΡ‚ΡŒ ошибки, Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡Ρƒ Π΄ΠΎΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ Π²Π΅Ρ‚ΠΊΠ΅ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΌΠ΅Ρ€ΠΆΠ°Ρ‚ с dev Π²Π΅Ρ‚ΠΊΠΎΠΉ. Когда тСстированиС Π·Π°Π΄Π°Ρ‡ΠΈ заканчиваСтся, Ρ‚ΠΎ Π’Π•Π’ΠšΠ£ Π—ΠΠ”ΠΠ§Π˜ ΠΌΠ΅Ρ€ΠΆΠ°Ρ‚ с мастСр Π²Π΅Ρ‚ΠΊΠΎΠΉ. Π’Π°ΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² этой схСмС Ρ€Π°Π±ΠΎΡ‚Ρ‹ с мастСр Π²Π΅Ρ‚ΠΊΠΎΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π·Π°Π΄Π°Ρ‡ΠΈ, Π° Π½Π΅ dev Π²Π΅Ρ‚ΠΊΡƒ. Π’Π΅Π΄ΡŒ Π² dev Π²Π΅Ρ‚ΠΊΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ измСнСния, сдСланныС Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² этой Π·Π°Π΄Π°Ρ‡Π΅, Π½ΠΎ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈ Π½Π΅ всС эти измСнСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ. ΠœΠ°ΡΡ‚Π΅Ρ€ Π²Π΅Ρ‚ΠΊΠ° ΠΈ dev Π²Π΅Ρ‚ΠΊΠ° со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ, поэтому ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΉ схСмС Ρ€Π°Π±ΠΎΡ‚Ρ‹ пСриодичСски заводят Π½ΠΎΠ²ΡƒΡŽ dev Π²Π΅Ρ‚ΠΊΡƒ ΠΎΡ‚ послСднСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ состояния мастСр Π²Π΅Ρ‚ΠΊΠΈ. НСдостатком этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° являСтся ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ, ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с классичСской схСмой. Π’Π°ΠΊΡƒΡŽ схСму Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ссли Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π½Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… тСстов ΠΈ всС тСстированиС происходит Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π½Π° сСрвСрС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π’Π°ΠΊ ΠΆΠ΅ слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ эти схСмы Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой, Ссли Π² этом Π΅ΡΡ‚ΡŒ какая-Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ.

Pull запросы


Π‘ этим понятиСм имССтся ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π°. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Git Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ Pull запросом. Одна ΠΈΠ· Π½ΠΈΡ…, это консольная ΠΊΠΎΠΌΠ°Π½Π΄Π° git pull. Другая это ΠΊΠ½ΠΎΠΏΠΊΠ° Π² web интСрфСйсС рСпозитория. На github.com ΠΎΠ½Π° выглядит Π²ΠΎΡ‚ Ρ‚Π°ΠΊ

ΠŸΡ€ΠΎ эту ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ дальшС.

Если программист достаточно ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ ΠΈ отвСтствСнный, Ρ‚ΠΎ ΠΎΠ½ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ сам сливаСт свой ΠΊΠΎΠ΄ Π² мастСр Π²Π΅Ρ‚ΠΊΡƒ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС программист Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Pull запрос. Pull запрос это ΠΏΠΎ сути Π΄Π΅Π»Π° запрос Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ merge. Pull запрос ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ· web интСрфСйса Git, ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git request-pull. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Pull запрос создан, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ участники ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ это, ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ программист ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ внСсти Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈ Π»ΠΈΠ±ΠΎ ΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ‚ΡŒ этот ΠΊΠΎΠ΄ Π»ΠΈΠ±ΠΎ Π½Π΅Ρ‚. Merge Ρ‡Π΅Ρ€Π΅Π· pull запросы ΠΈΠΌΠ΅Π΅Ρ‚ свои ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы. ΠœΠΈΠ½ΡƒΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ для тСсной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… программистов Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ лишним. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π² Π½Π΅Π΅ ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠΈ Π±ΡŽΡ€ΠΎΠΊΡ€Π°Ρ‚ΠΈΠΈ.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ссли Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π΅ΡΡ‚ΡŒ Π½Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ программисты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Ρ‚ΠΎ Pull запросы ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок, ΠΈ быстрСС ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ этих программистов наблюдая Π·Π° Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊΠΈΠ΅ измСнСния ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ внСсти Π² ΠΊΠΎΠ΄.

Π’Π°ΠΊ ΠΆΠ΅ Pull запросы подходят для ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ сообщСства программистов, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π’ этом случаС нСльзя Π·Π°Ρ€Π°Π½Π΅Π΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎ ΠΊΠΎΠΌΠΏΠ΅Ρ‚Π΅Π½Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ хотят ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅.

ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹


ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΈ ΠΌΠ΅Ρ€Π΄ΠΆΠ΅ Π²Π΅Ρ‚ΠΎΠΊ Ссли Π² этих Π²Π΅Ρ‚ΠΊΠ°Ρ… ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ строка ΠΊΠΎΠ΄Π° Π±Ρ‹Π»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π’ΠΎΠ³Π΄Π° получаСтся, Ρ‡Ρ‚ΠΎ Git Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ сам Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠ· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. Π­Ρ‚ΠΎ замСдляСт Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΊΠΎΠ΄ΠΎΠΌ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Π˜Π·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ связанныС Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ программистами.
Π”Ρ€ΡƒΠ³ΠΎΠΉ способ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, это Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ ΠΎ ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ стилС ΠΊΠΎΠ΄Π°. Π’ΠΎΠ³Π΄Π° программисты Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ измСнят ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ строчку станСт Π½ΠΈΠΆΠ΅.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ совСт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅, это Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡. Π§Π΅ΠΌ мСньшС строчСк Π²Ρ‹ помСняли, Ρ‚Π΅ΠΌ мСньшС Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ‚Ρƒ ΠΆΠ΅ ΡΠ°ΠΌΡƒΡŽ строку Ρ‡Ρ‚ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ программист Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π² мастСр Π²Π΅Ρ‚ΠΊΠ΅ достигаСтся состояниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ½ΠΎ отмСчаСтся Ρ‚Π΅Π³ΠΎΠΌ с вСрсиСй этого состояния. Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ вСрсиСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
ДСлаСтся это Π²ΠΎΡ‚ Ρ‚Π°ΠΊ

git tag -a v1.0

Π§Ρ‚ΠΎ Π±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

git push –tags

Π’Π΅Π³ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ Π΅Ρ‰Π΅ ΠΈ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎ состояниС ΠΊΠΎΠ΄Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ΠΎ Ρ‚Π΅Π³ΠΎΠΌ. ДСлаСтся это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ всС Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

git checkout <имя Ρ‚Π΅Π³Π°>

Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы дСплоя ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ сборки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π΅Π³ΠΈ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ состояния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ. Π’Π°ΠΊ сдСлано ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ссли ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ послСднСй вСрсии, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ риск, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ программист Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ внСсСт ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ измСнСния Π² мастСр Π²Π΅Ρ‚ΠΊΡƒ, ΠΈ ΠΌΡ‹ собСрСм Π½Π΅ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚Π΅Π»ΠΈ. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Ρ‚Π°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ состояниями ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

Если Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ этих ΠΏΡ€Π°Π²ΠΈΠ» ΠΈ β€œΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΎΠΉβ€ схСмы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ, Ρ‚ΠΎ Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваш Git с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ систСмами. НапримСр, с систСмой Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ packagist.org. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ сторонниС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ всякиС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ рассчитаны ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Ρ‚Π°ΠΊΡƒΡŽ схСму Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π³ΠΈΡ‚ΠΎΠΌ, ΠΈ Ссли Π²Ρ‹ сразу Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ всС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‚ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ большим плюсом для вас Π² дальнСйшСм.

Π­Ρ‚ΠΎ ΠΎΠ±Π·ΠΎΡ€ основных ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Git. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ Git большС, Ρ‚ΠΎ я Π²Π°ΠΌ ΠΏΠΎΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ Pro Git. Π’ΠΎΡ‚ здСсь.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±Ρ‹Π»Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° упрощСнная схСма прСдставлСния ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Но ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π΅Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ я Ρ€Π΅ΡˆΠΈΠ» Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ хранятся ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π° дискС. Если вас Ρ‚ΠΎΠΆΠ΅ заинтСрСсуСт этот вопрос, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ± этом Π²ΠΎΡ‚ здСсь.

storkvist/Intro-to-Git-and-GitHub: Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² систСму контроля вСрсий Git ΠΈ систСму для совмСстной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ GitHub Skip to content SignΒ up
  • Why GitHub? Features β†’
    • Code review
    • Project management
    • Integrations
    • Actions
    • Packages
    • Security
    • Team management
    • Hosting
    • Customer stories β†’
    • Security β†’
  • Team
  • Enterprise
  • Explore
    • Explore GitHub β†’
    Learn & contribute
    • Topics
    • Collections
    • Trending
    • Learning Lab
    • Open source guides
    Connect with others
    • Events

О — Git

  1. Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ слияниС
  2. МалСнький ΠΈ быстрый
  3. распрСдСлСнный
  4. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…
  5. ΠŸΠ»Π°Ρ†Π΄Π°Ρ€ΠΌ
  6. БСсплатный ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄
  7. Ворговая ΠΌΠ°Ρ€ΠΊΠ°

Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ слияниС

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Git, которая Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ выдСляСт Π΅Π³ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΠ· всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… SCM, — это модСль вСтвлСния.

Git позволяСт ΠΈ поощряСт вас ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ нСзависимы Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅, объСдинСниС ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ этих Π»ΠΈΠ½ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ сСкунды.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, ΠΊΠ°ΠΊ:

  • БСсконтактноС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ контСкста . Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ идСю, ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚Π΅ нСсколько Ρ€Π°Π·, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Ρ‚ΡƒΠ΄Π°, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π²Ρ‹ пошли, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΠ°Ρ‚Ρ‡, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Ρ‚ΡƒΠ΄Π°, Π³Π΄Π΅ Π²Ρ‹ экспСримСнтируСтС, ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Π΅Π³ΠΎ.
  • Ρ€ΠΎΠ»Π΅Π²Ρ‹Ρ… ΠΊΠΎΠ΄Π΅ΠΈΠ½ΠΎΠ² . Π˜ΠΌΠ΅Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ, которая всСгда содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ΄Π΅Ρ‚ Π² производство, Π΄Ρ€ΡƒΠ³ΡƒΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ для тСстирования, ΠΈ нСсколько Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΡ… для повсСднСвной Ρ€Π°Π±ΠΎΡ‚Ρ‹.
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс . Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹Π΅ Π²Π΅Ρ‚Π²ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠ»Π°Π²Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ удаляСтС ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, ΠΊΠΎΠ³Π΄Π° эта функция ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ΡΡ с вашСй основной Π»ΠΈΠ½ΠΈΠ΅ΠΉ.
  • ΠžΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Π΅ экспСримСнты .Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ для экспСримСнтов, осознайтС, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ сработаСт, ΠΈ просто ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Π΅Π΅ — оставив Ρ€Π°Π±ΠΎΡ‚Ρƒ — ΠΈ Π½ΠΈΠΊΡ‚ΠΎ Π΅Π΅ большС Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ (Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π² это врСмя Π½Π°ΠΆΠ°Π»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π΅Ρ‚Π²ΠΈ).

Π’ частности, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ отправляСтС Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ всС свои Π²Π΅Ρ‚Π²ΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· своих Π²Π΅Ρ‚ΠΎΠΊ, нСсколькими ΠΈΠ»ΠΈ всСми. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ люди ΠΌΠΎΠ³ΡƒΡ‚ свободно ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ, Π½Π΅ бСспокоясь ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΈΠΌΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ.

Π•ΡΡ‚ΡŒ способы ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ систСмами, Π½ΠΎ эта Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС ΠΈ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π° ошибкам. Git Π΄Π΅Π»Π°Π΅Ρ‚ этот процСсс нСвСроятно простым ΠΈ мСняСт способ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π΅Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°ΡŽΡ‚.

ΠœΠ°Π»Ρ‹ΠΉ ΠΈ быстрый

Git быстро . Π‘ Git ΠΏΠΎΡ‡Ρ‚ΠΈ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ локально, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π΅ΠΌΡƒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ прСимущСство Π² скорости Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… систСмах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ постоянно приходится Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с сСрвСром Π³Π΄Π΅-Π»ΠΈΠ±ΠΎ.

Git Π±Ρ‹Π» создан для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ядром Linux, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» эффСктивно ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ большиС Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ дня. Git написан Π½Π° C, сокращая врСмя выполнСния, связанноС с языками высокого уровня. Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±Ρ‹Π»ΠΈ основной Ρ†Π΅Π»ΡŒΡŽ Git с самого Π½Π°Ρ‡Π°Π»Π°.

ВСсты

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΡ‚ΠΈΠ² Subversion, общая цСнтрализованная систСма контроля вСрсий, которая ΠΏΠΎΡ…ΠΎΠΆΠ° Π² CVS ΠΈΠ»ΠΈ Perforce. МСньшС, быстрСС.

Для тСстирования Π±Ρ‹Π»ΠΈ установлСны большиС экзСмпляры AWS Π² ΠΎΠ΄Π½ΠΎΠΉ Π·ΠΎΠ½Π΅ доступности. Git ΠΈ SVN Π±Ρ‹Π»ΠΈ установлСны Π½Π° ΠΎΠ±Π΅ΠΈΡ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ…, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Ruby Π±Ρ‹Π»ΠΎ скопировано Π² ΠΎΠ±Π° сСрвСра Git ΠΈ SVN, ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π±Ρ‹Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π½Π° ΠΎΠ±ΠΎΠΈΡ….

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ Ρ‚ΠΎΡ‡Π½ΠΎ. Π—Π΄Π΅ΡΡŒ соотвСтствиС Π½Π° самом Π½ΠΈΠ·ΠΊΠΎΠΌ ΠΎΠ±Ρ‰ΠΈΠΉ Π·Π½Π°ΠΌΠ΅Π½Π°Ρ‚Π΅Π»ΡŒ НапримСр, тСсты ‘commit’ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒ Git, хотя Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²Ρ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΠΊΠ°Ρ‚ΡŒ Π½Π° сСрвСр сразу послС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π³Π΄Π΅ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Π² БВН.

ВсС это врСмя Π² сСкундах.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ Git SVN
Π€ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ (A) Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ 113 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (2164+, 2259-) 0,64 2,60 4x
Ѐиксация ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (B) Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, фиксация ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° тысячи ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 1 ΠšΠ‘ 1.53 24,70 16x
Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΉ Ρ‚ΠΎΠΊ Различия 187 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (1664+, 4859-) ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с послСдним ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ 0,25 1,09 4x
Diff Recent Diff ΠΏΡ€ΠΎΡ‚ΠΈΠ² 4 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π½Π°Π·Π°Π΄ (269 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ / 3609 +, 6898-) 0,25 3,99 16x
Π Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ Π Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ Π΄Π²Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ Π΄Ρ€ΡƒΠ³ ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π΄Ρ€ΡƒΠ³Π° (v1.9.1.0 / v1.9.3.0) 1.17 83,57 71x
Π–ΡƒΡ€Π½Π°Π» (50) Π–ΡƒΡ€Π½Π°Π» послСдних 50 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² (19 ΠšΠ‘ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…) 0,01 0,38 31x
Π–ΡƒΡ€Π½Π°Π» (всС) Π–ΡƒΡ€Π½Π°Π» всСх ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² (26 056 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² — 9,4 ΠœΠ‘ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅) 0,52 169,20 325x
Π–ΡƒΡ€Π½Π°Π» (Ρ„Π°ΠΉΠ») Π–ΡƒΡ€Π½Π°Π» истории ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° (array.c — 483 ΠΎΠ±ΠΎΡ€ΠΎΡ‚Π°) 0,60 82.84 138x
ОбновлСниС Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Pull of Commit A (113 Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, 2164+, 2259-) 0,90 2,82 3x
Π’ΠΈΠ½Π° Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° (array.c) 1,91 3,04 1x

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это Π»ΡƒΡ‡ΡˆΠΈΠΉ сцСнарий для SVN — сСрвСра Π±Π΅Π· Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с Π³ΠΈΠ³Π°Π±ΠΈΡ‚Π½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ клиСнтской машинС.ΠŸΠΎΡ‡Ρ‚ΠΈ всС ΠΈΠ· Π½ΠΈΡ… Π²Ρ€Π΅ΠΌΠ΅Π½Π° Π±Ρ‹Π»ΠΈ Π±Ρ‹ Π΅Ρ‰Π΅ Ρ…ΡƒΠΆΠ΅ для SVN, Ссли Π±Ρ‹ это соСдинСниС Π±Ρ‹Π»ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π° Git Π½Π΅ ΠΏΠΎΡΡ‚Ρ€Π°Π΄Π°ΡŽΡ‚.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ· этих ΠΎΠ±Ρ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ контроля вСрсий Git являСтся Π½Π° ΠΎΠ΄ΠΈΠ½-Π΄Π²Π° порядка быстрСС, Ρ‡Π΅ΠΌ SVN , Π΄Π°ΠΆΠ΅ Π² ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… условиях для SVN.

Одно ΠΈΠ· мСст, Π³Π΄Π΅ Git Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, — это Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ опСрация клонирования. Π—Π΄Π΅ΡΡŒ Git Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ всю ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдниС вСрсия.Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ², для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ это выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ Π“ΠΈΡ‚ * Git SVN
Клон Клон ΠΈ ΠΌΠ΅Π»ΠΊΠΈΠΉ ΠΊΠ»ΠΎΠ½ (*) Π² Git ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π² SVN 21,0 107,5 14,0
Π Π°Π·ΠΌΠ΅Ρ€ (ΠœΠ‘) Π Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±Ρ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° послС клонирования / извлСчСния (Π² ΠœΠ‘) 181.0 132,0

Π’Π°ΠΊΠΆΠ΅ интСрСсно ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ, хотя Git Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° для Вся история ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, насколько эффСктивно ΠΏΡ€ΠΈ сТатии ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

РаспрСдСлСнный

Одна ΠΈΠ· самых приятных особСнностСй любого распрСдСлСнного SCM, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Git, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ распространяСтся.Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ вмСсто Β«ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈΒ» Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ подсказки исходного ΠΊΠΎΠ΄Π°, Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Β«ΠΊΠ»ΠΎΠ½Β» всСго Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°.

НСсколько Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΏΠΎ сути, ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию основного сСрвСра. КаТдая ΠΈΠ· этих ΠΊΠΎΠΏΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΆΠ°Ρ‚Π° для Π·Π°ΠΌΠ΅Π½Ρ‹ основного сСрвСра Π² случаС сбоя ΠΈΠ»ΠΈ поврСТдСния. По сути, Π² Git Π½Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ сбоя, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ сущСствуСт СдинствСнной ΠΊΠΎΠΏΠΈΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°.

Π›ΡŽΠ±ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс

Из-Π·Π° распрСдСлСнной ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ Git ΠΈ прСвосходной систСмы вСтвлСния практичСски бСсконСчноС число Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ с ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ.

Subversion-ΡΡ‚ΠΈΠ»ΡŒ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса

Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс ΠΎΡ‡Π΅Π½ΡŒ распространСн, особСнно Ρƒ людСй, пСрСходящих ΠΈΠ· Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ систСмы. Git Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π²Ρ‹Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ, Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π²Ρ‹Π΄Π°Π²Π°Π» с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° послСднСго извлСчСния, поэтому цСнтрализованная модСль, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ сСрвСр, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ.

Integration Manager Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс

Π”Ρ€ΡƒΠ³ΠΎΠΉ распространСнный Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Git Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ — ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ фиксируСт «благословСнный» Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π—Π°Ρ‚Π΅ΠΌ нСсколько Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ ΠΈΠ· этого рСпозитория, ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π² свои нСзависимыС Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ просят ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ‚ΠΎΡ€Π° внСсти свои измСнСния. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ часто встрСчаСтся Π² рСпозиториях с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ GitHub.

Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Π΄ΠΈΠΊΡ‚Π°Ρ‚ΠΎΡ€Π° ΠΈ Π»Π΅ΠΉΡ‚Π΅Π½Π°Π½Ρ‚ΠΎΠ²

Для Π±ΠΎΠ»Π΅Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² часто эффСктивСн Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ядро ​​Linux.Π’ этой ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ люди (Β«Π»Π΅ΠΉΡ‚Π΅Π½Π°Π½Ρ‚Ρ‹Β») ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ подсистСму ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ всС измСнСния, связанныС с этой подсистСмой. Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ‚ΠΎΡ€ (Β«Π΄ΠΈΠΊΡ‚Π°Ρ‚ΠΎΡ€Β») ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ измСнСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ своих Π»Π΅ΠΉΡ‚Π΅Π½Π°Π½Ρ‚ΠΎΠ², Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ Π² «благословСнноС» Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΌ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚.

Data Assurance

МодСль Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Git, обСспСчиваСт ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ фиксация ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ сумма ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. НСвозмоТно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠ· Git ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… Π±ΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈ Π² .

Π’Π°ΠΊΠΆΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ любой Ρ„Π°ΠΉΠ», Π΄Π°Ρ‚Ρƒ, сообщСниС ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ ΠΈΠ»ΠΈ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Git-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π±Π΅Π· измСнСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² всСго, Ρ‡Ρ‚ΠΎ послС Π½Π΅Π³ΠΎ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ фиксации, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π±Ρ‹Π» зафиксирован, Π½ΠΎ Ρ‡Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π² Π΅Π³ΠΎ истории Π½Π΅ измСнилось.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… систСм контроля вСрсий ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠΉ цСлостности.

Π‘Ρ‚Π°Π΄ΠΈΠΎΠ½

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм, Π² Git Π΅ΡΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ называСтся Β«ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽΒ» ΠΈΠ»ΠΈ «индСксом». Π­Ρ‚ΠΎ промСТуточная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π³Π΄Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

Одна Π²Π΅Ρ‰ΡŒ, которая ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ Git ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… инструмСнтов, это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ быстро ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π²Π°ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ

.

Git — Book

, 2-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ (2014),

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Ebook

Вся ΠΊΠ½ΠΈΠ³Π° Pro Git, написанная Π‘ΠΊΠΎΡ‚Ρ‚ΠΎΠΌ Π§Π°ΠΊΠΎΠ½ΠΎΠΌ ΠΈ Π‘Π΅Π½ΠΎΠΌ Π¨Ρ‚Ρ€Π°ΡƒΠ±ΠΎΠΌ ΠΈ опубликованная Apress, доступна здСсь. ВсС содСрТимоС Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΏΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Creative Commons Attribution Non Commercial Share Alike 3.0. ΠŸΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Π΅ вСрсии ΠΊΠ½ΠΈΠ³ΠΈ доступны Π½Π° Amazon.com.>

    1. 1.1 О ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ вСрсий
    2. 1.2 ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история Git
    3. 1,3 Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Git?
    4. 1.4 Командная строка
    5. 1,5 Установка Git
    6. 1,6 ΠŸΠ΅Ρ€Π²Π°Ρ настройка Git
    7. 1.7 ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ
    8. 1.8 РСзюмС
    1. 2,1 ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Git Repository
    2. 2,2 Π—Π°ΠΏΠΈΡΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅
    3. 2,3 ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
    4. 2.4 ΠžΡ‚ΠΌΠ΅Π½Π° Π²Π΅Ρ‰Π΅ΠΉ
    5. 2.5 Π Π°Π±ΠΎΡ‚Π° с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ
    6. 2,6 Tagging
    7. 2,7 Git Aliases
    8. 2,8 РСзюмС
    1. 3,1 Π’Π΅Ρ‚Π²ΠΈ Π² Π΄Π²ΡƒΡ… словах
    2. 3.2 ОсновноС Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ слияниС
    3. 3,3 Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ»ΠΈΠ°Π»Π°ΠΌΠΈ
    4. 3,4 ВСтвящиСся Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы
    5. 3,5 Π£Π΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΈΠ»ΠΈΠ°Π»Ρ‹
    6. 3,6 ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²ΠΊΠ°
    7. 3,7 РСзюмС
    1. 4.1 ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹
    2. 4,2 ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Git Π½Π° сСрвСрС
    3. 4,3 ГСнСрация вашСго ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° SSH
    4. 4,4 Настройка сСрвСра
    5. 4.5 Git Daemon
    6. 4,6 Π£ΠΌΠ½Ρ‹ΠΉ HTTP
    7. 4.7 GitWeb
    8. 4,8 GitLab
    9. 4,9 ΠžΠΏΡ†ΠΈΠΈ сторонних поставщиков
    10. 4,10 РСзюмС
    1. 5,1 РаспрСдСлСнныС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы
    2. 5,2 Π’ΠΊΠ»Π°Π΄ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
    3. 5.3 Π’Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
    4. 5,4 РСзюмС
    1. 6,1 Настройка ΠΈ настройка ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи
    2. 6,2 Π’ΠΊΠ»Π°Π΄ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
    3. 6,3 Π’Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
    4. 6.4 Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ
    5. 6,5 Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΈΠ½Π³ GitHub
    6. 6,6 РСзюмС
    1. 7,1 Π’Ρ‹Π±ΠΎΡ€ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ
    2. 7,2 Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ постановка
    3. 7.3 ΠšΠΎΠΏΠΈΡ‚ΡŒ ΠΈ Ρ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ
    4. 7,4 ПодписаниС вашСй Ρ€Π°Π±ΠΎΡ‚Ρ‹
    5. 7,5 Поиск
    6. 7,6 ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΠ΅ истории
    7. 7,7 Бброс ДСмистифицированный
    8. 7,8 Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ΅ слияниС
    9. 7.9 Rerere
    10. 7,10 ΠžΡ‚Π»Π°Π΄ΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Git
    11. 7,11 ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ
    12. 7,12 ΠŸΠ°ΠΊΠ΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
    13. 7,13 Π·Π°ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ
    14. 7,14 Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
    15. 7.15 РСзюмС
    1. 8,1 ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Git
    2. 8,2 Атрибуты Git
    3. 8,3 Git Hooks
    4. 8,4 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Git-Enforced
    5. 8,5 РСзюмС
    1. 9.1 Git ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚
    2. 9,2 ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ Π² Git
    3. 9,3 РСзюмС
    1. 10,1 Π‘Π°Π½Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° ΠΈ Ρ„Π°Ρ€Ρ„ΠΎΡ€
    2. 10,2 Git Objects
    3. 10,3 Git References
    4. 10.4 Packfiles
    5. 10,5 Refspec
    6. 10,6 ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ
    7. 10,7 ΠžΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ восстановлСниС Π΄Π°Π½Π½Ρ‹Ρ…
    8. 10.8 ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды
    9. 10,9 РСзюмС
    1. A1.1 ГрафичСскиС интСрфСйсы
    2. A1.2 Git Π² Visual Studio
    3. A1.3 Git Π² ΠΊΠΎΠ΄Π΅ Visual Studio
    4. A1.4 Git Π² Eclipse
    5. A1.5 Git Π² IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine
    6. A1.6 Git in Sublime Text
    7. A1.7 Git in Bash
    8. A1.8 ΠœΠ΅Ρ€Π·Π°Π²Π΅Ρ† Π² зш
    9. A1.9 Git Π² PowerShell
    10. A1.10 РСзюмС
.

Git — Book

, 2-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ (2014),

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Ebook

Вся ΠΊΠ½ΠΈΠ³Π° Pro Git, написанная Π‘ΠΊΠΎΡ‚Ρ‚ΠΎΠΌ Π§Π°ΠΊΠΎΠ½ΠΎΠΌ ΠΈ Π‘Π΅Π½ΠΎΠΌ Π¨Ρ‚Ρ€Π°ΡƒΠ±ΠΎΠΌ ΠΈ опубликованная Apress, доступна здСсь. ВсС содСрТимоС Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΏΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Creative Commons Attribution Non Commercial Share Alike 3.0. ΠŸΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Π΅ вСрсии ΠΊΠ½ΠΈΠ³ΠΈ доступны Π½Π° Amazon.com.>

    1. 1.1 О ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ вСрсий
    2. 1.2 ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история Git
    3. 1,3 Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Git?
    4. 1.4 Командная строка
    5. 1,5 Установка Git
    6. 1,6 ΠŸΠ΅Ρ€Π²Π°Ρ настройка Git
    7. 1.7 ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ
    8. 1.8 РСзюмС
    1. 2,1 ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Git Repository
    2. 2,2 Π—Π°ΠΏΠΈΡΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅
    3. 2,3 ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
    4. 2.4 ΠžΡ‚ΠΌΠ΅Π½Π° Π²Π΅Ρ‰Π΅ΠΉ
    5. 2.5 Π Π°Π±ΠΎΡ‚Π° с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ
    6. 2,6 Tagging
    7. 2,7 Git Aliases
    8. 2,8 РСзюмС
    1. 3,1 Π’Π΅Ρ‚Π²ΠΈ Π² Π΄Π²ΡƒΡ… словах
    2. 3.2 ОсновноС Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ слияниС
    3. 3,3 Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ»ΠΈΠ°Π»Π°ΠΌΠΈ
    4. 3,4 ВСтвящиСся Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы
    5. 3,5 Π£Π΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΈΠ»ΠΈΠ°Π»Ρ‹
    6. 3,6 ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²ΠΊΠ°
    7. 3,7 РСзюмС
    1. 4.1 ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹
    2. 4,2 ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Git Π½Π° сСрвСрС
    3. 4,3 ГСнСрация вашСго ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° SSH
    4. 4,4 Настройка сСрвСра
    5. 4.5 Git Daemon
    6. 4,6 Π£ΠΌΠ½Ρ‹ΠΉ HTTP
    7. 4.7 GitWeb
    8. 4,8 GitLab
    9. 4,9 ΠžΠΏΡ†ΠΈΠΈ сторонних поставщиков
    10. 4,10 РСзюмС
    1. 5,1 РаспрСдСлСнныС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы
    2. 5,2 Π’ΠΊΠ»Π°Π΄ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
    3. 5.3 Π’Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
    4. 5,4 РСзюмС
    1. 6,1 Настройка ΠΈ настройка ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи
    2. 6,2 Π’ΠΊΠ»Π°Π΄ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
    3. 6,3 Π’Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
    4. 6.4 Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ
    5. 6,5 Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΈΠ½Π³ GitHub
    6. 6,6 РСзюмС
    1. 7,1
.
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Git: ΡΡ‚Π°Π½ΡŒΡ‚Π΅ профСссионалом Π² Git с этим руководством

На сСгодняшний дСнь Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ соврСмСнной систСмой контроля вСрсий Π² ΠΌΠΈΡ€Π΅ являСтся Git. Git — это Π·Ρ€Π΅Π»Ρ‹ΠΉ, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π² 2005 Π³ΠΎΠ΄Ρƒ Линусом Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄ΡΠΎΠΌ, извСстным создатСлСм ядра ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Linux. ΠžΡˆΠ΅Π»ΠΎΠΌΠ»ΡΡŽΡ‰Π΅Π΅ количСство ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² полагаСтся Π½Π° Git для контроля вСрсий, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ коммСрчСскиС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с Git, Ρ…ΠΎΡ€ΠΎΡˆΠΎ прСдставлСны Π² ΠΏΡƒΠ»Π΅ доступных Ρ‚Π°Π»Π°Π½Ρ‚ΠΎΠ² ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΈ ΠΎΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΈ IDE (ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… срСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ).

ИмСя Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, Git являСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ DVCS (ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, распрСдСлСнной систСмы контроля вСрсий). ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ СдинствСнноС мСсто для ΠΏΠΎΠ»Π½ΠΎΠΉ истории вСрсий ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΊΠ°ΠΊ это принято Π² ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ популярных систСмах контроля вСрсий, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ CVS ΠΈΠ»ΠΈ Subversion (Ρ‚Π°ΠΊΠΆΠ΅ извСстный ΠΊΠ°ΠΊ SVN), Π² Git рабочая копия ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π°ΠΊΠΆΠ΅ являСтся Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ. ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ, Git Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, бСзопасности ΠΈ гибкости.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

НСобработанныС характСристики ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Git ΠΎΡ‡Π΅Π½ΡŒ ΡΠΈΠ»ΡŒΠ½Ρ‹ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°ΠΌΠΈ. ВнСсСниС Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅, объСдинСниС ΠΈ сравнСниС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсий ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Алгоритмы, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² Git, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠ΅ знания ΠΎΠ± ΠΎΠ±Ρ‰ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Ρ… Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² исходного ΠΊΠΎΠ΄Π°, ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΊΠ°ΠΊΠΎΠ²Ρ‹ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ доступа.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ контроля вСрсий, Git Π½Π΅ обманываСтся ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ история вСрсий Π΄Π΅Ρ€Π΅Π²Π° Ρ„Π°ΠΉΠ»ΠΎΠ², вмСсто этого Git фокусируСтся Π½Π° самом содСрТимом Ρ„Π°ΠΉΠ»Π°.Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², Ρ„Π°ΠΉΠ»Ρ‹ исходного ΠΊΠΎΠ΄Π° часто ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ, Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΈ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² рСпозитория Git ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ комбинация Π΄Π΅Π»ΡŒΡ‚Π°-кодирования (сохранСниС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² содСрТимом), сТатия ΠΈ явноС Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ содСрТимого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… вСрсии.

РаспрСдСлСниС

Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ прСимущСства Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

НапримСр, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Алиса вносит измСнСния Π² исходный ΠΊΠΎΠ΄, добавляя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для прСдстоящСго выпуска 2.0, Π° Π·Π°Ρ‚Π΅ΠΌ фиксируСт эти измСнСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сообщСний.Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ фиксируСт эти измСнСния. ЕстСствСнно, ΠΎΠ½ΠΈ хранятся ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ части Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² истории вСрсий. Π—Π°Ρ‚Π΅ΠΌ Алиса ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° Π²Π΅Ρ€ΡΠΈΡŽ 1.3 Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, которая Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ эту Π±ΠΎΠ»Π΅Π΅ ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. ЦСль этого состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Алисы Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π΅Π»ΠΈΠ· исправлСния ошибки вСрсии 1.3.1, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ вСрсия 2.0 Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Π°. Π—Π°Ρ‚Π΅ΠΌ Алиса ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² Π²Π΅Ρ‚ΠΊΡƒ 2.0, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ Π½ΠΎΠ²Ρ‹ΠΌΠΈ функциями для 2.0, ΠΈ всС это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ доступа ΠΊ сСти ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, быстро ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ.Она ΠΌΠΎΠ³Π»Π° Π΄Π°ΠΆΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π° самолСтС. Когда ΠΎΠ½Π° Π³ΠΎΡ‚ΠΎΠ²Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ всС ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ зафиксированныС измСнСния Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Алиса ΠΌΠΎΠΆΠ΅Ρ‚ Β«Π½Π°ΠΆΠ°Ρ‚ΡŒΒ» ΠΈΡ… ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

Git Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ управляСмого исходного ΠΊΠΎΠ΄Π° Π² качСствС Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ истинныС связи ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ, вСрсиями, Ρ‚Π΅Π³Π°ΠΌΠΈ ΠΈ фиксациями, всС эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Git Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹ криптографичСски бСзопасным Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠΌ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ SHA1.Π­Ρ‚ΠΎ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ ΠΈ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΡ‚ случайных ΠΈ Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ история ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ отслСТиваСтся.

Π‘ Git Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ подлинная история содСрТимого вашСго исходного ΠΊΠΎΠ΄Π°.

НСкоторыС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ систСмы контроля вСрсий Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ сСкрСтного измСнСния Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½Π΅ΠΌ этапС. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΉ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ бСзопасности для любой ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, которая опираСтся Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ

Одна ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Git — Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ.Git Π³ΠΈΠ±ΠΎΠΊ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ…: Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π² Π΅Π³ΠΎ эффСктивности ΠΊΠ°ΠΊ Π² ΠΌΠ°Π»Ρ‹Ρ… ΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Ρ‚Π°ΠΊ ΠΈ Π² Π΅Π³ΠΎ совмСстимости со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ систСмами ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ.

Git Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ вСтвлСния ΠΈ Ρ‚Π΅Π³ΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ пСрвоклассныС Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ SVN) ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Π²Π΅Ρ‚Π²ΠΈ ΠΈ Ρ‚Π΅Π³ΠΈ (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ слияниС ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚), Ρ‚Π°ΠΊΠΆΠ΅ хранятся ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. НС всС систСмы контроля вСрсий ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ отслСТивания.

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Git

Git — Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ каТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° отличаСтся ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ свой собствСнный Π°Π½Π°Π»ΠΈΠ·, Π²ΠΎΡ‚ основныС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Git ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²:

это Ρ…ΠΎΡ€ΠΎΡˆΠΎ

Git ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π­Ρ‚ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Git ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описаны Π²Ρ‹ΡˆΠ΅. ΠŸΡ€ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌ сравнСнии с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ² ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ находят, Ρ‡Ρ‚ΠΎ Git ΠΎΡ‡Π΅Π½ΡŒ благоприятСн.

Git — это Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ стандарт

Git — самый распространСнный инструмСнт Π² своСм Ρ€ΠΎΠ΄Π΅. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Git ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ. Π’ Atlassian ΠΏΠΎΡ‡Ρ‚ΠΈ вСсь исходный ΠΊΠΎΠ΄ нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° управляСтся Π² Git.

МногиС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Git, ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ выпускников ΠΊΠΎΠ»Π»Π΅Π΄ΠΆΠ΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Git. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ организациям ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎ ΠΊΡ€ΠΈΠ²ΠΎΠΉ обучСния ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π½Π° Git ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ систСмы управлСния вСрсиями, ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΈΠ· ΠΈΡ… ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΈ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π΅Ρ‚ нСобходимости ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒΡΡ Ρ€Π°Π±ΠΎΡ‚Π΅ с Git.

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ прСимущСствам большого ΠΏΡƒΠ»Π° Ρ‚Π°Π»Π°Π½Ρ‚ΠΎΠ², ΠΏΡ€Π΅ΠΎΠ±Π»Π°Π΄Π°Π½ΠΈΠ΅ Git Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ сторонниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ инструмСнты ΠΈ сСрвисы ΡƒΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ с Git, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ IDE ΠΈ наши собствСнныС инструмСнты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ DVCS Sourcetree, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для отслСТивания ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Jira, ΠΈ слуТба хостинга ΠΊΠΎΠ΄Π°, Bitbucket.

Если Π²Ρ‹ Π½Π΅ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠΉ приобрСсти Ρ†Π΅Π½Π½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ Π² инструмСнтах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ контроля вСрсий, Git Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π² вашСм спискС.

Git — это качСствСнный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

Git — это ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ с Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ дСсятилСтним постоянным руководством. Π‘ΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° продСмонстрировали взвСшСнноС суТдСниС ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈΡŽ долгосрочных потрСбностСй своих ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСгулярных выпусков, ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‰ΠΈΡ… удобство использования ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ΠšΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Π»Π΅Π³ΠΊΠΎ провСряСтся, ΠΈ бСсчислСнноС мноТСство прСдприятий Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° это качСство.

Git ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ сообщСства ΠΈ ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠΉ Π±Π°Π·ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.ДокумСнтация отличная ΠΈ Π² ΠΈΠ·ΠΎΠ±ΠΈΠ»ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠ½ΠΈΠ³ΠΈ, ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ пособия ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Π±-сайты. Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ подкасты ΠΈ Π²ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊΠΈ.

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ сниТаСт Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²-Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Git Π±Π΅Π· ΠΎΠΏΠ»Π°Ρ‚Ρ‹. Для использования Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Git, нСсомнСнно, являСтся ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊΠΎΠΌ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… систСм контроля вСрсий с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, SVN ΠΈ CVS.

ΠšΡ€ΠΈΡ‚ΠΈΠΊΠ° Git

Одна распространСнная ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠ° Git — Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ.НСкоторая тСрминология Π² Git Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΠ²Π° для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², Π° для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм тСрминология Git ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, revert Π² Git ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Π΅ΠΌ Π² SVN ΠΈΠ»ΠΈ CVS. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Git ΠΎΡ‡Π΅Π½ΡŒ способный ΠΈ прСдоставляСт ΠΌΠ½ΠΎΠ³ΠΎ возмоТностСй своим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ. ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ использованию этой мощности ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΎ, эта сила ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ для увСличСния скорости Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Для Ρ‚Π΅Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приходят ΠΈΠ· нСраспрСдСлСнной VCS, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Π²Π΅Ρ‰ΡŒΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ΠΈ Π½Π΅ хотят Ρ‚Π΅Ρ€ΡΡ‚ΡŒ.Однако, хотя Git Π±Ρ‹Π» спроСктирован ΠΊΠ°ΠΊ распрСдСлСнная систСма управлСния вСрсиями (DVCS), с Git Ρƒ вас всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ каноничСский Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ всС измСнСния Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии. Π‘ Git, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½, ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Β«Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎΒ» сСрвСра. Π’ΠΎ врСмя ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ всю ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Git являСтся Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈ распространяСмым, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ, Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ прСимущСства Git, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΎΡΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ скучаСтС.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Git ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π΅Π³ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ дальшС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ прСимущСствах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Git ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ всСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ.

,