ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡƒΠΆΠ΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ, ΠΏΠΎΡ€Π° ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ инструмСнтами для управлСния Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ пригодятся, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π°Ρ‡Π½Ρ‘Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ постоянно.

Команда git branch Π΄Π΅Π»Π°Π΅Ρ‚ нСсколько большС, Ρ‡Π΅ΠΌ просто создаёт ΠΈ удаляСт Π²Π΅Ρ‚ΠΊΠΈ. ΠŸΡ€ΠΈ запускС Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ простой список ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Ρƒ вас Π²Π΅Ρ‚ΠΎΠΊ:

Π’Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π½ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ извлСкая ΠΈ Π½Π΅ пСрСходя Π½Π° Π½Π΅Ρ‘.

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ

НС ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°ΠΉΡ‚Π΅ Π²Π΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ всё Π΅Ρ‰Ρ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ участниками. НС ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°ΠΉΡ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ Π² master/main/mainline, Π½Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² Ρ€Π°Π·Π΄Π΅Π» «ИзмСнСниС ΠΈΠΌΠ΅Π½ΠΈ Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈΒ».

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Π³Π΄Π΅ ΠΌΡ‹ сСйчас находимся:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ староС имя Π²Π΅Ρ‚ΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ исправлСнным.

ИзмСнСниС ΠΈΠΌΠ΅Π½ΠΈ Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ

ИзмСнСниС ΠΈΠΌΠ΅Π½ΠΈ Π²Π΅Ρ‚ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ master/main/mainline/default, сломаСт ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, слуТбы, Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΈ скрипты сборки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ваш Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ. Π’Π°ΠΊΠΆΠ΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ поиск Π² своём Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ всС ссылки Π½Π° староС имя Π²Π΅Ρ‚ΠΊΠΈ Π² вашСм ΠΊΠΎΠ΄Π΅ ΠΈΠ»ΠΈ скриптах.

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠΉΡ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ master Π² main с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Π’ ΠΈΡ‚ΠΎΠ³Π΅, состояниС рСпозитория становится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ стоят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

ВсС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ зависят ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ свой ΠΊΠΎΠ΄ ΠΈ/ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ.

ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ всСх запускаСмых тСстов.

Π˜ΡΠΏΡ€Π°Π²ΡŒΡ‚Π΅ скрипты сборки ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ².

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

ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, исправив ссылки, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

Π‘Π»Π΅ΠΉΡ‚Π΅ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚Π΅ запросы Π½Π° слияниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π½Π° ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git

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

git init [project-name] β€” ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

git clone [url] β€” Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π Π°Π±ΠΎΡ‚Π° с измСнСниями

git status β€” ΠΏΠΎΠ»Π½Ρ‹ΠΉ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

git diff β€” ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² индСкс ΠΊΠΎΠΌΠΌΠΈΡ‚Π° (staged).

git add [file] β€” ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ для ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

git add ‘*.txt’ β€” Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ»Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ.

git diff HEAD β€” ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ измСнилось с послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

git diff HEAD^ β€” ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ измСнилось с прСдпослСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

git diff [branch] β€” ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ.

git reset [file] β€” ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· индСкса ΠΊΠΎΠΌΠΌΠΈΡ‚Π° (измСнСния Π½Π΅ Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ).

git commit β€” Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ измСнСния Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. для написания сообщСния откроСтся Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€.

Π Π°Π±ΠΎΡ‚Π° с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ

git branch β€” список всСх Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

git branch [branch-name] β€” ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

git checkout [branch-name] β€” ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ.

git checkout [filename] β€” Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π² ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС Ссли ΠΎΠ½ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² индСкс ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

git merge [branch] β€” ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ измСнСния Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅ с измСнСниями ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠΉ.

Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ

git rm [file] β€” ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² индСкс ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ.

git mv [file-original] [file-renamed] β€” ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ имя Ρ„Π°ΠΉΠ»Π° ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² индСкс ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²

.gitignore β€” тСкстовый Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»Π° для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· рСпозитория. НапримСр:

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ²

git stash β€” ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ всС отслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹.

git stash pop β€” Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ послСдниС Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

git stash list β€” список всСх сохранСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

git stash drop β€” ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ послСдниС Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

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

git log β€” список измСнСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ.

git diff [file-branch]..[second-branch] β€” ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ различия ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ.

git show [commit] β€” ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Π°Π΄Π°Ρ‚Ρƒ ΠΈ измСнСния Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅.

git show [branch]:[file] β€” ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Ρ„Π°ΠΉΠ» Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΡΡΡŒ Π½Π° Π½Π΅Ρ‘.

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

git reset β€” ΡƒΠ±Ρ€Π°Ρ‚ΡŒ измСнСния ΠΈΠ· индСкса ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, сами измСнСния останутся.

git reset [commit/tag] β€” ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ послС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, измСнСния Π±ΡƒΠ΄ΡƒΡ‚ сохранСны локально.

Бинхронизация ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

git fetch [bookmark] β€” Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ всю ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ с Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория.

git merge [bookmark]/[branch] β€” ΡΠ»ΠΈΡ‚ΡŒ измСнСния локальной Π²Π΅Ρ‚ΠΊΠΈ ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ.

git push β€” Π·Π°ΠΏΡƒΡˆΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

git push [remote] [branch] β€” Π·Π°ΠΏΡƒΡˆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

git push [bookmark] :[branch] β€” Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

git pull β€” Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈ измСнСния ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ произвСсти слияниС с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ.

git pull [remote][branch] β€” ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ для слияния.

git remote β€” ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список доступных ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π².

git remote add [remote][url] β€” Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

git ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ

Бписок Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ

Π§Ρ‚ΠΎΠ±Ρ‹ вывСсти список Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°:

Бписок ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΌΠΎΠΆΠ½ΠΎ сначала ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ Ρƒ сСбя Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°:

git fetch Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ссылки ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория. Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° выполняСтся, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ измСнилось Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ сдСлал Π² Π½Π΅ΠΌ. ΠŸΡ€ΠΈ этом ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ git fetch Π½Π΅ измСняСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π²Π°ΡˆΠΈΡ… Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅.

Бписок всСх Π²Π΅Ρ‚ΠΎΠΊ

Написал нСбольшой скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Π΅Ρ€Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ‚ΠΊΡƒΡ‰Π΅Π³ΠΎ Π±Ρ€Π°Π½Ρ‡Π° Π² Π³ΠΈΡ‚Π΅, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… манипуляциях.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ, достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git branch.

Однако ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список всСх Π²Π΅Ρ‚ΠΎΠΊ, помСчая Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΎΠΉ (*):

Из всСго этого списка Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Ρ‡Π»Π΅Π½ΠΈΡ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ dev, Π΄Π° Π΅Ρ‰Π΅ ΠΈ Π±Π΅Π· Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΈ.

Π•ΡΡ‚ΡŒ сСрвСр git, Ρ‚ΡƒΠ΄Π° я поставил web-интСрфСйс, ΠΈ Π½Π°Π΄ΠΎ ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ ctags Π½Π° Ρ„Π°ΠΉΠ»Ρ‹, для этого Π½Π°Π΄ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ push Π² hook’ах, Ρ€Π΅ΡˆΠΈΠ» я ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π²Π΅ Π²Π΅Ρ‚ΠΊΠΈ Π½Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ origin:

Надо Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠ°ΠΊ Ρ‚ΠΎ ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ элСйСс рСпозитория (origin ΠΈΠ»ΠΈ Π΄Ρ€.), ΠΈ Π²Π΅Ρ‚ΠΊΡƒ, ΠΏΠΎ http такая информация Π½Π΅ пСрСдаСтся.

ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π» я Π² локальном Ρ€Π΅ΠΏΠ΅:

послС этого я посмотрСл Ρ„Π°ΠΉΠ» head:

Π² .git/HEAD Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅: ref: refs/heads/dev
Π½Π° сСрвСрС ref: refs/heads/master

dev Π±Ρ‹Π»Π° создана послС master

Π½ΠΎ HEAD ΠΏΠΎ сути Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΆΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Π΄Π΅Ρ€Π΅Π²Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ? ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π° сСрвСрС master?

Π²ΠΎΡ‚ Π΅Ρ‰Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» Π½Π° сСрвСрС:

1 ΠΎΡ‚Π²Π΅Ρ‚ 1

ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅

Π² git-Π΅ Π²Π΅Ρ‚ΠΊΠΎΠΉ (branch) называСтся Β«ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰ΠΈΠΉΒ» ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° commit, Π° Π½Π΅ Π½Π°Π±ΠΎΡ€ commit-ΠΎΠ², ΠΊΠ°ΠΊ принято Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… систСмах управлСния ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ вСрсий.

Π½ΠΎ HEAD ΠΏΠΎ сути Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΆΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Π΄Π΅Ρ€Π΅Π²Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ? ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π° сСрвСрС master?

Π² bare-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Ρ„Π°ΠΉΠ» HEAD ссылаСтся Π½Π° Β«Π²Π΅Ρ‚ΠΊΡƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽΒ», Ρ‡Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ влияСт Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ клонирования этого рСпозитория: Ссли ΠΏΡ€ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Π½Π° ΠΊΠ°ΠΊΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ слСдуСт ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (working directory) ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ клонирования, ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° эту Π²Π΅Ρ‚ΠΊΡƒ ΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

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

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

О Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΈ Π² Π΄Π²ΡƒΡ… словах

Для Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ понимания ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π°Π·Π°Π΄ ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎ, ΠΊΠ°ΠΊ Git Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅.

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΈΠ· Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Git?, Git Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½Π°Π±ΠΎΡ€ снимков (snapshot).

Когда Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚, Git сохраняСт Π΅Π³ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° снимок (snapshot) ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚Π°ΠΊ ΠΆΠ΅ содСрТит имя Π°Π²Ρ‚ΠΎΡ€Π° ΠΈ email, сообщСниС ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ нСпосрСдствСнно ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΌΡƒ (Π΅Π³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ): отсутствиС родитСля для ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΎΠ΄ΠΈΠ½ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΈ нСсколько Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ для Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² слияния Π΄Π²ΡƒΡ… ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²Π΅Ρ‚ΠΎΠΊ.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с трСмя Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Π²Ρ‹ добавляСтС ΠΈΡ… всС Π² индСкс ΠΈ создаётС ΠΊΠΎΠΌΠΌΠΈΡ‚. Π’ΠΎ врСмя индСксации вычисляСтся ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ сумма ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° (SHA-1 ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΈΠ· Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Git?), Π·Π°Ρ‚Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» сохраняСтся Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ (Git Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ» Π±Π»ΠΎΠ± β€” большой Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚), Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ сумма ΠΏΠΎΠΏΠ°Π΄Ρ‘Ρ‚ Π² индСкс:

Π’Π°Ρˆ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Git Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΏΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²: Ρ‚Ρ€ΠΈ Π±Π»ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ»), ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², содСрТащий список Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΈΠΌ Π±Π»ΠΎΠ±ΠΎΠ², Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, содСрТащий ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².

ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git

Если Π²Ρ‹ сдСлаСтС измСнСния ΠΈ создадитС Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚, Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.

ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git

ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git

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

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ создаётся Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.

ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git

ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ

ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git

Какой Π² этом смысл? Π”Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚:

ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git

Если Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git log прямо сСйчас, Ρ‚ΠΎ Π² Π΅Ρ‘ Π²Ρ‹Π²ΠΎΠ΄Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ созданная Π²Π΅Ρ‚ΠΊΠ° Β«testingΒ» Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

Π’Π΅Ρ‚ΠΊΠ° Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ исчСзла; просто Git Π½Π΅ Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½Π° вас интСрСсуСт, ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΏΠΎ Π΅Π³ΠΎ мнСнию ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ git log ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ.

ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git

Π’Π°ΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π²Π΅Ρ‚ΠΎΠΊ Π² Git происходит ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ΡΡŒ Π½Π° ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ выглядСл Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² Ρ‚Ρƒ Π²Π΅Ρ‚ΠΊΡƒ. Если Git ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ этого ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ β€” ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π²ΠΎΠΎΠ±Ρ‰Π΅.

Π”Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм Π΅Ρ‰Π΅ нСсколько ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ создадим ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚:

ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ git

Π’Π΅Ρ‚ΠΊΠ° Π² Git β€” это простой Ρ„Π°ΠΉΠ», содСрТащий 40 символов ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы SHA-1 ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚; поэтому ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Π΅ΡˆΡ‘Π²Ρ‹ΠΌΠΈ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния потрСблСния рСсурсов ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Git происходит Ρ‚Π°ΠΊ ΠΆΠ΅ быстро ΠΈ просто ΠΊΠ°ΠΊ запись 41 Π±Π°ΠΉΡ‚Π° Π² Ρ„Π°ΠΉΠ» (40 Π·Π½Π°ΠΊΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки).

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

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈ Π²Π°ΠΌ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ ΠΆΠ΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π Π°Π±ΠΎΡ‚Π° с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π² GIT

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π±Π°Π³ ΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΈΡ‚Ρ‡Ρƒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π—Π°Ρ‡Π΅ΠΌ? Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹. Если Π±Ρ‹ всС дСлалось Π² основной Π²Π΅Ρ‚ΠΊΠ΅, Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ слоТно Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, особСнно Ссли Π½Π°Π΄ Π½ΠΈΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ людСй.
ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ измСнСния Π² Π²Π΅Ρ‚ΠΊΠ΅ ΡΠ»ΠΈΠ²Π°ΡŽΡ‚ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ master.

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

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ testing локально, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

На ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ΅, допустим Π² master. БостояниС этой Π²Π΅Ρ‚ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ скопировано Π² Π²Π΅Ρ‚ΠΊΡƒ testing, ΠΈ Π² testing ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ снимки, Π½Π΅ трогая ΠΏΠΎΠΊΠ° ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ master.

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

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° создаст Π²Π΅Ρ‚ΠΊΡƒ, Π½ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ нас Π½Π° Π½Π΅Π΅, ΠΌΡ‹ всС Π΅Ρ‰Π΅ останСмся Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² старой Π²Π΅Ρ‚ΠΊΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ testing ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π½Π΅ΠΉ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ GIT Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Ссли Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅ β€” Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ находимся β€” Π΅ΡΡ‚ΡŒ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ зафиксированы (commit) Π»ΠΈΠ±ΠΎ Π½Π΅ спрятаны (stash). Π­Ρ‚ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, вСдь ΠΏΡ€ΠΈ смСнС Π²Π΅Ρ‚ΠΊΠ΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ смСнятся Ρ„Π°ΠΉΠ»Ρ‹, ΠΈ git-Ρƒ Π½Π°Π΄ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π±Ρ‹Ρ‚ΡŒ с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌΠΈ измСнСниями.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡ… ΠΎΠ΄Π½ΠΎΠΉ строкой:

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° создаст Π²Π΅Ρ‚ΠΊΡƒ testing ΠΈ сразу ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ нас Π½Π° Π½Π΅Π΅. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ это ΠΈ трСбуСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Как ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ‡ΡŒΡŽ-Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ GIT Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Ρ‡ΡƒΠΆΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ‚Π°ΠΊΠΎΠΉ β€” Π²Ρ‹ создаСтС Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ копию Ρ‡ΡƒΠΆΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ, ΠΈ Π½Π°Π΄ Π½Π΅ΠΉ ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅.

Но для Π½Π°Ρ‡Π°Π»Π° Π½Π°Π΄ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ β€” ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½Π΅Π³ΠΎ всС Π²Π΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ Π΅ΡΡ‚ΡŒ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ:

Допустим, Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠ° dev1. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠΌΡΡ Π½Π° Π½Π΅Π΅, создав Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ:

Π’ΠΎΠΎΠ±Ρ‰Π΅-Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅:

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π²Π΅Ρ‚ΠΊΡƒ Π²Π΅Ρ‚ΠΊΠΈ

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΡ‹ отвСтвляСмся ΠΎΡ‚ основной Π²Π΅Ρ‚ΠΊΠΈ master, Π½ΠΎ Π½Π΅ всСгда. Иногда трСбуСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ созданной Π²Π΅Ρ‚ΠΊΠΈ β€” Ρ‚Π°ΠΊ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ порядка.

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ создавали Π²Π΅Ρ‚ΠΊΡƒ:

создаСт ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ основной Π²Π΅Ρ‚ΠΊΠΈ master.

Если Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π²ΠΈΡ‚ΡŒΡΡ Π½Π΅ ΠΎΡ‚ основной Π²Π΅Ρ‚ΠΊΠΈ, Π° ΠΎΡ‚ вновь созданной testing, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

ΠŸΠ΅Ρ€Π²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ нас Π½Π° Π²Π΅Ρ‚ΠΊΡƒ testing.
Вторая ΠΊΠΎΠΌΠ°Π½Π΄Π° создаст Π²Π΅Ρ‚ΠΊΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ subbranch_of_testing, ΠΎΡ‚Π²Π΅Ρ‚Π²Π»ΡΡŽΡ‰ΡƒΡŽΡΡ ΠΎΡ‚ testing, ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ нас Π½Π° Π½Π΅Π΅.
Как понятно ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ, subbranch_of_testing – это ΠΏΠΎΠ΄Π²Π΅Ρ‚ΠΊΠ° Π²Π΅Ρ‚ΠΊΠΈ testing.

Как ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС созданныС локально Π²Π΅Ρ‚ΠΊΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ список Π²Π΅Ρ‚ΠΎΠΊ. ВСкущая Π²Π΅Ρ‚ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π° Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΎΠΉ.

Как ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ

Иногда оказываСтся, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ созданноС имя Π²Π΅Ρ‚ΠΊΠΈ Π½Π΅ самоС Π»ΡƒΡ‡ΡˆΠ΅Π΅. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ.

Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ

Если Π΅Ρ‰Π΅ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° push, Ρ‚ΠΎ достаточно ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

НапримСр, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌ Π²Π΅Ρ‚ΠΊΡƒ testing Π² Π²Π΅Ρ‚ΠΊΡƒ test:

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

НапримСр, тСкущая Π²Π΅Ρ‚ΠΊΠ° Ρƒ нас subbranch_of_testing. ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌ Π΅Π΅ Π² subbranch:

Π£Π΄Π°Π»Π΅Π½Π½ΡƒΡŽ

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ (Π²Π΅Ρ‚ΠΊΡƒ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ) нСльзя. МоТно ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π΅ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с Π½ΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ:

здСсь origin β€” имя ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Ρ‚Π°ΠΊ называСтся),
old-name β€” имя Π²Π΅Ρ‚ΠΊΠΈ локальной Π²Π΅Ρ‚ΠΊΠΈ,
new-name β€” Π½ΠΎΠ²ΠΎΠ΅ имя Π²Π΅Ρ‚ΠΊΠΈ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

НапримСр, Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ testing Π² test:

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ локальной Π²Π΅Ρ‚ΠΊΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄:

Π€Π»Π°Π³ΠΈ:
-D сокращСниС для β€”delete –force удаляСт Π²Π΅Ρ‚ΠΊΡƒ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, слиты Π»ΠΈ Π΅Π΅ измСнСния
-d сокращСниС для β€”delete
НапримСр, ΡƒΠ΄Π°Π»ΠΈΠΌ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ test:

Π’ΠΎΠΎΠ±Ρ‰Π΅-Ρ‚ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ слили Π΅Π΅ (Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ merge) Π² Π²Π΅Ρ‚ΠΊΡƒ master, смотритС послСдний Ρ€Π°Π·Π΄Π΅Π» Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΎ слиянии Π²Π΅Ρ‚ΠΎΠΊ.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π΅ записи.
Π›ΠΈΠ±ΠΎ Ρ‡Π΅Ρ€Π΅Π· Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠΆΠ΅ Π΄Π΅Π»Π°Π»ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π΅Ρ‚ΠΊΠΈ:

НапримСр, ΡƒΠ΄Π°Π»ΠΈΠΌ Π²Π΅Ρ‚ΠΊΡƒ test ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория origin:

Π›ΠΈΠ±ΠΎ с Ρ„Π»Π°Π³ΠΎΠΌ β€”delete, Ρ‚Π°ΠΊ понятнСС:

здСсь origin β€” имя ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория

Как ΡΠ»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠ»ΠΈΠ²Π°ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π΅Ρ‚ΠΊΡƒ-багфикс) Π² Π²Π΅Ρ‚ΠΊΡƒ master. Для этого сначала ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π² Π²Π΅Ρ‚ΠΊΡƒ master (Π² Ρ‚Ρƒ Π²Π΅Ρ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Π»ΠΈΠ²Π°Π΅ΠΌ измСнСния):

А Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ слияниС. Допустим, Π² Π²Π΅Ρ‚ΠΊΡƒ master Π½Π°Π΄ΠΎ ΡΠ»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ test :

БлияниС Π²Π΅Ρ‚ΠΎΠΊ Π½Π΅ всСгда происходит Π³Π»Π°Π΄ΠΊΠΎ, ΠΈΠ½ΠΎΠ³Π΄Π° трСбуСтся Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Для этого Π½Π°Π΄ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΡ… commit.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ GIT ΠΈ составили Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΡƒ ΠΏΠΎ использованию Π²Π΅Ρ‚ΠΎΠΊ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *