Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

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

Π—Π° созданиС Π½ΠΎΠ²Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ ΠΈ слияниС ΠΈΡ… Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ нСсколько Git ΠΊΠΎΠΌΠ°Π½Π΄.

git branch

Команда git branch β€” это своСго Ρ€ΠΎΠ΄Π° «ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π²Π΅Ρ‚ΠΎΠΊ». Она ΡƒΠΌΠ΅Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ ваши Π²Π΅Ρ‚ΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅, ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ….

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

НаконСц, ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ Ρ‡Ρ‚ΠΎ происходит Π·Π° кулисами этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Бсылки Π² Git Π³Π»Π°Π²Ρ‹ 10.

git checkout

Команда git checkout ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²Π΅Ρ‚ΠΎΠΊ ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΡ… содСрТимого Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

ΠœΡ‹ рассмотрСли Π΄Π΅Ρ‚Π°Π»ΠΈ взаимосвязи этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ git reset Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ РаскрытиС Ρ‚Π°ΠΉΠ½ reset Π³Π»Π°Π²Ρ‹ 7.

ΠœΡ‹ исслСдовали Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ HEAD Π³Π»Π°Π²Ρ‹ 10.

git merge

Команда git merge ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для слияния ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π΅Ρ‚ΠΎΠΊ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½Π° устанавливаСт ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.

ΠœΡ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈ вас с этой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΡΠ½ΠΎΠ²Ρ‹ вСтвлСния Π³Π»Π°Π²Ρ‹ 3. И хотя git merge встрСчаСтся Π² этой ΠΊΠ½ΠΈΠ³Π΅ повсСмСстно, практичСски всС использования ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΈΠ΄ git merge
с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ СдинствСнной Π²Π΅Ρ‚ΠΊΠΈ для слияния.

ΠœΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ Β«ΡΠΏΠ»ΡŽΡ‰Π΅Π½Π½Ρ‹Π΅Β» слияния (ΠΊΠΎΠ³Π΄Π° Git Π΄Π΅Π»Π°Π΅Ρ‚ слияниС Π² Π²ΠΈΠ΄Π΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π±Π΅Π· сохранСния всСй истории Ρ€Π°Π±ΠΎΡ‚Ρ‹) Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ€Π°Π·Π΄Π΅Π»Π° Π€ΠΎΡ€ΠΊ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠœΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ криптографичСскиС подписи ΠΏΠ΅Ρ€Π΅Π΄ слияниями Ссли ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ GPG Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Подпись ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π³Π»Π°Π²Ρ‹ 7.

Ну ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ† Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ БлияниС ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² Π³Π»Π°Π²Ρ‹ 7 ΠΌΡ‹ познакомились со слияниСм ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π².

git mergetool

Команда git mergetool просто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ внСшнюю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ слияний, Π² случаС Ссли Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ слияния.

ΠœΡ‹ Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ упомянули ΠΎ Π½Π΅ΠΉ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния Π³Π»Π°Π²Ρ‹ 3 ΠΈ рассказали ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ слияния Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ слияния ΠΈ сравнСния Π³Π»Π°Π²Ρ‹ 8.

git log

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

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π²ΠΎ всСх Π³Π»Π°Π²Π°Ρ… ΠΊΠ½ΠΈΠ³ΠΈ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для дСмонстрации истории ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

git stash

Команда git stash ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ сохранСния всСх нСзафиксированных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с Ρ†Π΅Π»ΡŒΡŽ очистки Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π±Π΅Π· нСобходимости Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅.

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° практичСски Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ раскрыта Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΡ€ΠΈΠΏΡ€ΡΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ очистка Π³Π»Π°Π²Ρ‹ 7.

git tag

Команда git tag ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для задания постоянной ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² истории ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π΅Π»ΠΈΠ·ΠΎΠ².

ΠœΡ‹ познакомились ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ с Π½Π΅ΠΉ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π Π°Π±ΠΎΡ‚Π° с Ρ‚Π΅Π³Π°ΠΌΠΈ Π³Π»Π°Π²Ρ‹ 2 ΠΈ использовали Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΠΎΠΌΠ΅Ρ‡Π°ΠΉΡ‚Π΅ свои Ρ€Π΅Π»ΠΈΠ·Ρ‹ Π³Π»Π°Π²Ρ‹ 5.

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

ВсСго нСсколько ΠΊΠΎΠΌΠ°Π½Π΄ Π½ΡƒΠΆΠ½ΠΎ для Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования Git для вСдСния истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

git add

Команда git add добавляСт содСрТимоС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² индСкс (staging area) для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ git commit ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ лишь этот индСкс, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git add для сборки слСпка вашСго ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Git, ΠΌΡ‹ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ ΠΎ Π½Π΅ΠΉ дСсятки Ρ€Π°Π· Π½Π° страницах ΠΊΠ½ΠΈΠ³ΠΈ. НиТС пСрСчислСны Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ интСрСсныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Знакомство с этой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ происходит Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π³Π»Π°Π²Ρ‹ 2.

О Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git add для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² слияния написано Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния Π³Π»Π°Π²Ρ‹ 3.

Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ индСксированиС Π³Π»Π°Π²Ρ‹ 7 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git add для добавлСния Π² индСкс лишь ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… частСй ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π”Π΅Ρ€Π΅Π²ΡŒΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ, Ρ‡Ρ‚ΠΎ происходит Π·Π° кулисами.

git status

Команда git status ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ состояния Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΈ индСксС: ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹, Π½ΠΎ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² индСкс; ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² индСксС. Π’Π΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΊ этому выводятся подсказки ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ состояниС Ρ„Π°ΠΉΠ»ΠΎΠ².

ΠœΡ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈ вас с этой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ состояния Ρ„Π°ΠΉΠ»ΠΎΠ² Π³Π»Π°Π²Ρ‹ 2, Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ стандартный ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π°. И хотя ΠΌΡ‹ использовали git status повсСмСстно Π² этой ΠΊΠ½ΠΈΠ³Π΅, практичСски всС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования ΠΏΠΎΠΊΡ€Ρ‹Ρ‚Ρ‹ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅.

git diff

ΠœΡ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈ вас с основами этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ индСксированных ΠΈ нСиндСксированных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π³Π»Π°Π²Ρ‹ 2, Π³Π΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ измСнСния ΡƒΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² индСкс, Π° ΠΊΠ°ΠΊΠΈΠ΅ β€” Π΅Ρ‰Ρ‘ Π½Π΅Ρ‚.

ΠœΡ‹ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ Π²Π°ΠΌ ΠΊΠ°ΠΊ эффСктивно ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ синтаксис git diff A…​B Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ примСняСмых ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π³Π»Π°Π²Ρ‹ 5.

git difftool

ΠœΡ‹ лишь Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ упомянули ΠΎ Π½Π΅ΠΉ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ индСксированных ΠΈ нСиндСксированных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π³Π»Π°Π²Ρ‹ 2.

git commit

Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ О Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΈ Π² Π΄Π²ΡƒΡ… словах Π³Π»Π°Π²Ρ‹ 3 ΠΌΡ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ познакомились с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° git commit ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ‚ это ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ.

И Π½Π°ΠΊΠΎΠ½Π΅Ρ† ΠΌΡ‹ заглянули Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git commit Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π³Π»Π°Π²Ρ‹ 10 ΠΈ ΡƒΠ·Π½Π°Π»ΠΈ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ‚ Π·Π° кулисами.

git reset

Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ РаскрытиС Ρ‚Π°ΠΉΠ½ reset, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ посвящённой этой ΠΊΠΎΠΌΠ°Π½Π΄Π΅, ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ Π² дСталях Π΅Ρ‘ использования.

git rm

Команда git rm ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Git для удалСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· индСкса ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ. Она ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° git add с Ρ‚Π΅ΠΌ лишь ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° удаляСт, Π° Π½Π΅ добавляСт Ρ„Π°ΠΉΠ»Ρ‹ для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

git mv

Команда git mv β€” это всСго лишь ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ», Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ git add для Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈ git rm для старого.

ΠœΡ‹ лишь Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ упомянули эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π³Π»Π°Π²Ρ‹ 2.

git clean

Команда git clean ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для удалСния мусора ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Π­Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² слияний.

ΠœΡ‹ рассмотрСли мноТСство ΠΎΠΏΡ†ΠΈΠΉ ΠΈ сцСнариСв использования этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π³Π»Π°Π²Ρ‹ 7.

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

Git для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π£Ρ€ΠΎΠΊ 7.
Π Π°Π±ΠΎΡ‚Π° с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ

Π’ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊ

ΠšΠΎΠ½ΡΠΏΠ΅ΠΊΡ‚ ΡƒΡ€ΠΎΠΊΠ°

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ содСрТаниС ΡƒΡ€ΠΎΠΊΠ°, основныС инструкции для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки ΠΈ совСты.

Git стал стандартом Π² систСмах контроля вСрсий благодаря простой ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ.

КакиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Π²Π΅Ρ‚ΠΊΠΈ

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. ΠœΡ‹ сидим ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π½ΠΎΠ²ΠΎΠΉ большой Ρ„ΠΈΡ‡ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, добавляСм Π½Π° сайт Ρ€Π°Π·Π΄Π΅Π» новостСй. Π£ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, помСняли стили, ΠΏΠΎΠΏΡ€Π°Π²ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ, Π½ΠΎ Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π΅Ρ‰Π΅ Π΄Π°Π»Π΅ΠΊΠΎ.

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

Π‘Ρ…Π΅ΠΌΠ° рабочая, Π½ΠΎ слишком ΠΌΠ½ΠΎΠ³ΠΎ суСты ΠΈ нСудобств:

ВсС эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ git Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Π²Π΅Ρ‚ΠΎΠΊ.

Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π²Π΅Ρ‚ΠΊΠΈ

Π’Π°ΠΊ ΠΊΠ°ΠΊ git Ρ…Ρ€Π°Π½ΠΈΡ‚ всю ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ ΠΎΠ½ Ρ…Ρ€Π°Π½ΠΈΡ‚ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ всСх Π²Π΅Ρ‚ΠΎΠΊ ΠΈ со всСми измСнСниями. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π²Π΅Ρ€Π½ΡƒΠ²ΡˆΠΈΡΡŒ Π² свою Π²Π΅Ρ‚ΠΊΡƒ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡƒΠΆΠ΅ сдСланныС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ измСнСния ΠΏΠΎ Π½ΠΈΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ нагляднСС ΠΈ понятнСС, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, смотритС Π²ΠΈΠ΄Π΅ΠΎ. А Π² тСкстС Π½ΠΈΠΆΠ΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС ΠΊΠΎΠΌΠ°Π½Π΄ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ.

Π’Π΅Ρ‚ΠΊΠ° master

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

Π’Π°ΠΊ ΠΌΡ‹ создали Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ news, имСя Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π² Π½Π΅ΠΉ Π±Π»ΠΎΠΊ новостСй.

Как ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° checkout

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ этом Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅

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

Π­Ρ‚ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΌΡ‹ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ список всСх Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ. Π—Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° Ρƒ news ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ сСйчас находимся.

ΠšΠΎΠΌΠΌΠΈΡ‚ΠΈΠΌ Π² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ

Как Π·Π°ΠΏΡƒΡˆΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ

Вспомним, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΡƒΡˆΠΈΠ»ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΡ‹ ΠΏΡƒΡˆΠΈΠΌ ΠΈ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вмСсто master ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ своС Π½Π°Π·Π²Π°Π½ΠΈΠ΅

Если Ρ‚Π°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π½Π° сСрвСрС Π½Π΅Ρ‚, Ρ‚ΠΎ ΠΎΠ½Π° создастся. Если ΠΌΡ‹ Π΅Π΅ ΡƒΠΆΠ΅ ΠΏΡƒΡˆΠΈΠ»ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‚ΠΎ просто отправятся Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹.

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

Допустим, ΠΌΡ‹ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ Ρ…ΠΎΡ‚ΠΈΠΌ Π΅Π³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. ΠΠ°Ρ…ΠΎΠ΄ΡΡΡŒ Π² Π½ΡƒΠΆΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ news Π² block-news. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, посмотрим список Π²Π΅Ρ‚ΠΎΠΊ

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ Π±Π΅Π· вопросов.

Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π² PhpStorm

Π’ ΠΏΡ€Π°Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ Π΅ΡΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ «Git:master». Π’Π°ΠΌ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ, Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° этот ΠΏΡƒΠ½ΠΊΡ‚ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ New Branch. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² спискС Local Branches Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ Checkout. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ соотвСствСнно Delete ΠΈΠ»ΠΈ Rename.

Наглядно это показываСтся Π² Π²ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊΠ΅

Π Π°Π·Π΄Π΅Π» Remote Branches ΠΌΡ‹ рассмотрим Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅

Π§Ρ‚ΠΎ ΠΌΠΎΠ³Ρƒ ΠΏΠΎΡΠΎΠ²Π΅Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ

Поняв магию Π²Π΅Ρ‚ΠΎΠΊ, ΠΌΡ‹ ΡƒΠΆΠ΅ Π½Π΅ прСдставим свою Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±Π΅Π· git. Π›ΡŽΠ±ΠΎΠΉ, Π΄Π°ΠΆΠ΅ нСбольшой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с создания рСпозитория. А Ρ€Π°Π±ΠΎΡ‚Π° с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ СстСствСнной, ΠΊΠ°ΠΊ ΠΈ собствСнно написаниС ΠΊΠΎΠ΄Π°. МнС каТСтся, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ git ΠΈΠ· ΠΏΡ€ΠΈΠΊΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ‚ΡƒΠ»Π·Ρ‹ Π² Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΉ инструмСнт Ρ€Π°Π±ΠΎΡ‚Ρ‹.

И напослСдок ΠšΠΈΠ°Π½Ρƒ. ΠŸΡ€ΠΎΡΠ²Π΅Ρ‚Π»Π΅Π½ΠΈΠ΅. Назад Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π½Π΅Ρ‚

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π½Π° сСрвСрС

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

Git для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: основы Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Π‘Ρ‚Π°Ρ‚ΡŒΡ «Git для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…» Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° Π½Π° ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°Π²Ρ‹ΠΊΠ° Π΅Π³ΠΎ использования ΠΈ исправлСниС распространСнных ошибок.

Рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ситуации ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ). К ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ΡŒΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

Git для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Git init

Git add

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ ΠΈ слСдом ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Она Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ всС .py Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² models/directory:

Git clean

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

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ untracked-Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Git rm

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΠ΅ «Git для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…» ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ отслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹:

Если удаляСмый Ρ„Π°ΠΉΠ» находится Π² staging-области, Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π»Π°Π³:

На случай Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· рСпозитория, Π° Π² своСй Π€Π‘ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Git branch

Π’Ρ‹ сдСлали ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ Π² ΠΈΠΌΠ΅Π½ΠΈ Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π΅ имя? Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Π°ΠΌ Π² ΠΏΠΎΠΌΠΎΡ‰ΡŒ:

Если Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ:

Для измСнСния ΠΈΠΌΠ΅Π½ΠΈ Π·Π°ΠΏΡƒΡˆΠΈΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ потрСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… шагов:

Если имя локальной Π²Π΅Ρ‚ΠΊΠΈ Π½Π΅ совпадаСт с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Π΅Ρ‚ΠΊΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Git log

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Git ΠΊΠΎΠΌΠΌΠΈΡ‚, примСняйтС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git log. Π’Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π½ΠΎ срСди этого Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ commit id ΠΈ сообщСниС. Для измСнСния Π²Ρ‹Π²ΠΎΠ΄Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Она ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄, ΠΊΠ°ΠΊ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅.

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ сСмь символов – это сокращСнный commit id, Π° послС Π½Π΅Π³ΠΎ ΠΈΠ΄Π΅Ρ‚ сообщСниС. Commit id прСдставлСн Π² сокращСнном Π²ΠΈΠ΄Π΅, Ρ‚. ΠΊ. «ΠΏΠΎΠ»Π½Π°Ρ вСрсия» состоит ΠΈΠ· сорока ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… символов, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π½Π° 160-разрядный SHA1 Ρ…ΡΡˆ.
Head -> master – ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π² Π²Π΅Ρ‚ΠΊΠ΅ master.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ сообщСниС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΡ€Π°, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ это:

Git stash

Допустим, Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π²Π΅Ρ‚ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄ внСсСниСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Для этого Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° stash, которая Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ Π² «Ρ‡ΠΈΡΡ‚ΠΎΡ‚Π΅»:

Для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊ:

А Ссли ΠΏΠ΅Ρ€Π΅Π΄ΡƒΠΌΠ°Π»ΠΈ, Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΎΡ‚ΠΊΠ°Ρ‚:

Git checkout

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

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ измСнСния ΠΈΠ»ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ Git ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅. Если этого Π½Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, измСнСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Ρ‚ΠΊΠ°Ρ…, Π° Π²Π°ΠΌ это Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

НапримСр, Π΅ΡΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠ° development, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π΅ копию, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² Π½Π΅Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Git commit

Π’Ρ‹ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΠ»ΠΈ измСнСния, ΠΏΠΎΠ·ΠΆΠ΅ поняли, Ρ‡Ρ‚ΠΎ допустили ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΈΠ»ΠΈ просто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ описаниС Π±ΠΎΠ»Π΅Π΅ понятным. Π’ΠΎΠ³Π΄Π° эта ΠΊΠΎΠΌΠ°Π½Π΄Π° – Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ:

Если Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ исправили ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π½ΠΎ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ commit-сообщСниС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ с Ρ„Π»Π°Π³ΠΎΠΌ —no-edit:

Π’Ρ‹ Π·Π°ΠΏΡƒΡˆΠΈΠ»ΠΈ свой ΠΊΠΎΠ΄ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π° Π·Π°Ρ‚Π΅ΠΌ поняли, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ commit-сообщСниС. Для этого послС внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ сдСлайтС ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ push. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ имя ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория Π² качСствС источника, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:

Git reset

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git reset. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Ρ„Π»Π°Π³Π° сброса:

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния, Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° добавлСния Ρ„Π°ΠΉΠ»Π° two.txt, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ commit id 96b037c.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git reset с Ρ„Π»Π°Π³ΠΎΠΌ soft:

git reset soft «ΠΏΠΎΡ‚СряСт» всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ послС этого ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 96b037c), Π½ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ области.

ΠŸΠΎΡ‚Π΅Ρ€ΡΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ прямой ссылки для доступа ΠΊ Π½ΠΈΠΌ. Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git reflog. Git навсСгда ΡƒΠ΄Π°Π»ΠΈΡ‚ «ΠΏΠΎΡ‚Π΅Ρ€ΡΡˆΠΊΠΈ», ΠΊΠΎΠ³Π΄Π° запустится сборщик мусора (запуск производится ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 30 Π΄Π½Π΅ΠΉ).

ΠŸΡ€ΠΈ запускС git status Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅:

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

Если Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ reset с Ρ„Π»Π°Π³ΠΎΠΌ —mixed, ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ станут «ΠΏΠΎΡ‚Срянными», Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ области, Π½ΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ Π² Π€Π‘. Если Π²Ρ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Ρ„Π»Π°Π³ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ reset, Ρ„Π»Π°Π³ —mixed Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

ΠŸΡ€ΠΈ запускС git status ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, запуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ reset с Ρ„Π»Π°Π³ΠΎΠΌ —hard.

Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git reset послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всС Π·Π°ΠΏΡƒΡˆΠ΅Π½ΠΎ Π² общСдоступный Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‡Π»Π΅Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, создаСт ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Git revert

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Git ΠΊΠΎΠΌΠΌΠΈΡ‚:

Revert отмСняСт Π½Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π° измСнСния Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½ΠΎΠ³ΠΎ commit-id.

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

НапримСр, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚. ПослС revert-Π° статус Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

ΠŸΠ΅Ρ€Π΅Π΄ послСдним ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ Ρ„Π°ΠΉΠ» six.txt Π½Π΅ Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½, поэтому ΠΎΠ½ ΡƒΠ΄Π°Π»Π΅Π½, Π° five.txt возвращаСтся Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ состояниС. Π’Π΅ΠΏΠ΅Ρ€ΡŒ история Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ нСсколько ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Если Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ нСсколько ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π²Π½Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, слСдуСт ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ commit-id:

Git cherry-pick

И послСдняя ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ· Ρ€ΡƒΠ±Ρ€ΠΈΠΊΠΈ Git для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… – cherry-pick. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, исправлСниС ошибки) Π² Π²Π΅Ρ‚ΠΊΠ΅ «Π», работая Π² Π²Π΅Ρ‚ΠΊΠ΅ «Π‘», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ cherry-pick.

Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ с ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ, ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ commit-id, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² свою Π²Π΅Ρ‚ΠΊΡƒ. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅:

Git fetch

Команда для случаСв, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ всС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· Π½ΡƒΠΆΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ (ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ) ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² local repository. ПослС выполнСния git fetch Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ссылки Π½Π° Π²Π΅Ρ‚ΠΊΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π‘ΡƒΡ‚ΡŒ ΠΈ Π³Π»Π°Π²Π½ΠΎΠ΅ прСимущСство ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ с Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹ Π½Π΅ сливаСтС всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

Git merge

А Π²ΠΎΡ‚ git merge ΠΊΠ°ΠΊ Ρ€Π°Π· для этого ΠΈ Π½ΡƒΠΆΠ΅Π½.

Git pull

Git push

Если git pull ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΌΠ΅Ρ€ΠΆΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ, Ρ‚ΠΎ git push дСйствуСт с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚: Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния ΠΏΡƒΡˆΠ°Ρ‚ΡΡ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

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

А ΠΊΠ°ΠΊΠΈΠ΅ Π΅Ρ‰Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ Π±Ρ‹ посовСтовали ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ?

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

Git. Π£Ρ€ΠΎΠΊ 3.
Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹: branch, checkout, status, log, diff.

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

1. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π²Π΅Ρ‚ΠΊΠ°.
2. Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π²Π΅Ρ‚ΠΊΠΈ.
3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ.
4. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ списка Π²Π΅Ρ‚ΠΎΠΊ.
5. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ.
6. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ состояния Π²Π΅Ρ‚ΠΊΠΈ. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹: git status, git log, git diff.
6.1. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ состояния Ρ„Π°ΠΉΠ»ΠΎΠ² Π²Π΅Ρ‚ΠΊΠΈ. Команда git status.
6.2. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π²Π΅Ρ‚ΠΊΠΈ. Команда git log.
6.3. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ. Команда git diff.
7. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ.

Π”Π°Π΄ΠΈΠΌ Π΄Π²Π° опрСдСлСния Π²Π΅Ρ‚ΠΊΠΈ: Π½Π° логичСском ΠΈ физичСском уровнях.

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

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

2. ЀизичСский ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ
На физичСском ΡƒΡ€ΠΎΠ²Π½Π΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Git, Π²Π΅Ρ‚ΠΊΠ° – это ссылка Π½Π° послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² этой Π²Π΅Ρ‚ΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊ Ρ‡Π΅ΠΌΡƒ.

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ Π²Π΅Ρ‚ΠΎΠΊ Π² ΠΈΡ… нСзависимости. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΈ ΠΎΠ½ΠΈ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ скаТутся Π½Π° Ρ„Π°ΠΉΠ»Π°Ρ… Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΎΠ΄Π½Π° Π²Π΅Ρ‚ΠΊΠ°, Π½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

На самом Π΄Π΅Π»Π΅, Π²Π½Π°Ρ‡Π°Π»Π΅, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ свой ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, Git автоматичСски создаСт ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅Π΅ имя ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ «main» ΠΌΡ‹ Π·Π°Π΄Π°Π²Π°Π»ΠΈ Π² настройках Git Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ создаСм Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, Git автоматичСски ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ main Π½Π° послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π²Π΅Ρ‚ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

Пока ΠΌΡ‹ Ρ€Π°Π·Π±ΠΈΡ€Π°Π»ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π²Π΅Ρ‚ΠΊΠ°, Ρƒ вас ΠΌΠΎΠ³ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ вопрос: Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ слоТности, вСдь ΠΌΠΎΠΆΠ½ΠΎ просто Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ измСнСния, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ.

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Git – ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ систСма контроля вСрсий: ΠΎΠ½Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈ большим ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΉ, ΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ для ΠΈΡ… Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ ΠΎΠ΄ΠΈΠ½ – скорСС всСго Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ, Π½ΠΎ Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² большой ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π±Π΅Π· Π²Π΅Ρ‚ΠΎΠΊ Π²Π°ΠΌ Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ.

Π˜Ρ‚Π°ΠΊ, Ρ‡Π°Ρ‰Π΅ всСго Π²Π΅Ρ‚ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… случаях.

Бпособ 1. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ git branch + git checkout

Команда git branch

На самом Π΄Π΅Π»Π΅, git branch – ΠΎΡ‡Π΅Π½ΡŒ мощная ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая ΡƒΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ всСго. БСйчас ΠΌΡ‹ рассматриваСм Π΅Π΅ ΠΊΠ°ΠΊ инструмСнт для создания Π²Π΅Ρ‚ΠΎΠΊ. НиТС ΠΌΡ‹ рассмотрим Π΅Ρ‰Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ способы Π΅Π΅ примСнСния.

Команда git checkout

40 ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… Ρ†ΠΈΡ„Ρ€ Π² Ρ„Π°ΠΉΠ»Π΅ Π²Ρ‹ΡˆΠ΅ ΠΈ Π΅ΡΡ‚ΡŒ Ρ…ΡΡˆ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ новосозданная Π²Π΅Ρ‚ΠΊΠ°.

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

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

Команда git branch

# Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ
$ git branch
* develop
feature
main

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ поняли, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Π²Π΅Ρ‚ΠΎΠΊ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ научимся ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

Команда git checkout

Π­Ρ‚ΠΎΡ‚ малСнький фокус ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя, особСнно, Ссли Π²Ρ‹ часто ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ΡΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ.

Π¨Π°Π³ 1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сущСствования Π²Π΅Ρ‚ΠΊΠΈ

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

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

Π¨Π°Π³ 2. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ HEAD Π½Π° Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

Π¨Π°Π³ 3. ИзмСнСниС Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ

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

6.1. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ состояния Ρ„Π°ΠΉΠ»ΠΎΠ² Π²Π΅Ρ‚ΠΊΠΈ. Команда git status.

6.2. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π²Π΅Ρ‚ΠΊΠΈ. Команда git log.

Команда git log

-p
ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ измСнСния, сдСланныС Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅.

—graph
РисуСт ASCII-Π³Ρ€Π°Ρ„ взаимосвязи ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

—all
Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ всСх ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π½Π° всСх Π²Π΅Ρ‚ΠΊΠ°Ρ….

adding complex algebra project

commit 603def20e5da2d512da2852011eb5be3fa156940 (origin/main, origin/HEAD)
Author: smartiqa
Date: Fri Dec 4 02:00:41 2020 +0300

Π’ описании ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git log Π²Ρ‹ΡˆΠ΅ сказано, Ρ‡Ρ‚ΠΎ Π² зависимости ΠΎΡ‚ ситуации, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ вывСсти ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ рСпозитория, ΠΈΠ»ΠΈ ΠΆΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Git ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ истории.

ΠžΠ±Ρ‰Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ руководствуСтся Git ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ истории, Ρ‚Π°ΠΊΠΎΠ΅: ΠΈΠ΄ΠΈ ΠΏΠΎ ΠΏΡ€Π΅Π΄ΠΊΠ°ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ закончатся. Иногда это Π±Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΈΠ½ΠΎΠ³Π΄Π° – Π½Π΅Ρ‚.

Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° создания Π²Π΅Ρ‚ΠΊΠΈ, Π΄ΠΎ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² Π½Π΅ΠΉ. Π’ этом случаС Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ сдСлаСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°

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

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

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