Π§Π΅ΠΌ отличаСтся master ΠΈ origin master

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ origin / master Π² git ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с origin master?

Π― Ρ…ΠΎΡ‚Π΅Π» Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ этот вопрос Π² качСствС коммСнтария ΠΊ ΠΎΡ‚Π²Π΅Ρ‚Ρƒ @KevinBallard здСсь Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° «origin master «ΠΏΡ€ΠΎΡ‚ΠΈΠ²»origin/master», Π½ΠΎ ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π±Ρ‹Π» Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ.

ΠΈΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, это Ρ‚Π°ΠΊΠΎΠΉ: origin/master являСтся локальной ΠΊΠΎΠΏΠΈΠ΅ΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±Ρ‹Π» ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ ΠΏΡƒΠ»ΡŒΡ‚ (скопирован, Ρ‚. Π΅. просто пСрСзаписаны), ΠΈ ΠΌΠΎΠΉ мСстный Ρ„ΠΈΠ»ΠΈΠ°Π» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ master измСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° я git merge origin/master (ΠΈΠ»ΠΈ git rebase … ). Π’ΠΎ Π΅ΡΡ‚ΡŒ: ΠΊΠΎΠ³Π΄Π° я git pull origin master ΠΎΠ±Π° ΠΌΠΎΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ origin/master ΠΈ master ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅/слился. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ прСдполагая, Ρ‡Ρ‚ΠΎ Π² настоящСС врСмя я Π½Π°Ρ…ΠΎΠΆΡƒΡΡŒ Π² Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ (Ρ‚. Π΅. git checkout master ΠΌΠΎΠΉ послСдний Π·Π°ΠΊΠ°Π·).

4 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²

ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ git pull (Ρ‡Ρ‚ΠΎ я ΡΡ‡ΠΈΡ‚Π°ΡŽ Π·Π»ΠΎΠΌ, ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΅Ρ‰Π΅?), ΠΎΠ½ автоматичСски Π΄Π΅Π»Π°Π΅Ρ‚:

ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ master, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ:

экстракт git help pull :

Ρ‚ΠΎΡ‡Π½Π΅Π΅ git pull Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ git fetch с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΈ Π·Π²ΠΎΠ½ΠΊΠΈ git merge Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π²Π΅Ρ‚Π²Π΅ΠΉ Π² настоящСС Π±Ρ€Π°Π½Ρ‡

/
имСнованная Π²Π΅Ρ‚Π²ΡŒ управляСтся автоматичСски git.

git fetch автоматичСскоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ origin/master локальная Π²Π΅Ρ‚Π²ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ origin ΠŸΠ”Π£ master Ρ„ΠΈΠ»ΠΈΠ°Π»Π°.

Ссли я Π½Π°Ρ…ΠΎΠΆΡƒΡΡŒ Π² Π²Π΅Ρ‚ΠΊΠ΅ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ topic, это ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ просто Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π“Π˜Π’ пСрСбазирования мастСр вмСсто git пСрСбазирования происхоТдСния/мастСр?

ΠΈΠ»ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ мСстныС Π³Π»Π°Π²Π½Ρ‹Π΅ Π²Π΅Ρ‚Π²ΠΈ?

Π”Π°, это Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ мСстныС Π²Π΅Ρ‚Π²ΠΈ. Они просто ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΠ±Ρ‰Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ.

послС извлСчСния git смотрит Π½Π° Π²Π°ΡˆΡƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ пытаСтся ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· origin Π‘ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

Π² config Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, какая локальная Π²Π΅Ρ‚Π²ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π°, Π½Π° ΠΊΠ°ΠΊΠΎΠΉ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ-Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ git pull Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

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

ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ локальная Π²Π΅Ρ‚Π²ΡŒ ΠΈ удалСнная Π²Π΅Ρ‚Π²ΡŒ, которая отслСТиваСт, ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°.

Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° (Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ git merge ), Π° Π½Π΅ сам Ρ„ΠΈΠ»ΠΈΠ°Π».

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

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ origin / master ΠΈ origin master Π² Git?

7 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Ρ‚ΡΠ½ΡƒΡ‚ΡŒ Π·Π° Π΄Π²Π° шага

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ origin/master являСтся Π²Π΅Ρ‚Π²ΡŒΡŽ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. Π’ΠΎΡ‚ Π΄Π²Π° шага:

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ свои Π½ΠΎΠ²Ρ‹Π΅ измСнСния Π² master ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² origin :

Π•Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π˜Ρ‚Π°ΠΊ, Ρƒ нас Π΅ΡΡ‚ΡŒ это:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ (Π² мСстном Ρ„ΠΈΠ»ΠΈΠ°Π»Π΅ master ):

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Π±Π°Π½Π³Π°Π»ΠΎΡ€ продвинулся дальшС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Β«Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒΒ» ΠΈΠ»ΠΈ Β«ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅Β».

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡŽ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ origin Π² Git.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ это происхоТдСниС ΠΈΠ»ΠΈ источник истины для вашСго рСпозитория ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ master ΠΈΠ»ΠΈ development, ΠΈΠ»ΠΈ Π²Ρ‹ Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ это.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, взяв происхоТдСниС Π² контСкстС, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π΅Ρ‰ΠΈ.

Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ мою Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ (Π½Π° ΠΌΠΎΠ΅ΠΌ локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅), ΠΈ всС измСнСния Π±ΡƒΠ΄ΡƒΡ‚ доступны Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ (Ρ‚.Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΈ измСнСния Π±Ρ‹Π»ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ с ΠΌΠΎΠ΅ΠΉ локальной Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ, ΠΊΠ°ΠΊ я ΠΌΠΎΠ³Ρƒ этого Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ?

git merge origin / master

Как ΠΌΠ½Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ со всСми Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ измСнСниями?

git push origin master

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎΠ± ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ всСх ΠΌΠΎΠΈΡ… Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² origin (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ (https: // github. com / mycode / git-awsomecode.git)) Π² Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

Π― ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ мастСр с этой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

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

Π¦ΠΈΠΊΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· Github

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

Π― расскаТу ΠΎ Ρ†ΠΈΠΊΠ»Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· Github, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ. Он Π±Ρ‹Π» ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ Π³ΠΎΠ΄Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°: 3 β€” 14 Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ.

БущСствуСт 2 основных Π²Π΅Ρ‚ΠΊΠΈ: master ΠΈ dev.

master β€” ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ Π²Π΅Ρ‚ΠΊΠ°, готовая ΠΊ Π²Ρ‹ΠΊΠ°Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ Π½Π° production сСрвСр Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚.

dev β€” Π²Π΅Ρ‚ΠΊΠ°, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°.

Π˜Ρ‚Π°ΠΊ, Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ master ΠΈ dev Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹.

1. Когда программист Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ Π½ΠΎΠ²Ρ‹ΠΌ Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΎΠΌ / Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ dev ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π΅ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ.

2. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ…ΠΎΡ‡Π΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Π΅Ρ„Π΅ΠΊΡ‚ страницы Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. НомСр ошибки Π½Π° Github β€” 1234. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· dev

1234-bug-login это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ словом Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ Π΄Π΅Ρ„Π΅ΠΊΡ‚Π°, Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ β€” bug / feature, Π° дальшС β€” описаниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

3. Π”Π°Π»Π΅Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ локально: Π΄Π΅Π»Π°Π΅Ρ‚ измСнСния, ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ Ρ‚.Π΄. Commit-cообщСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ошибки ΠΈ тСхничСскоС описаниС

4. Π˜Ρ‚Π°ΠΊ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΠΊΠΎΠ½Ρ‡Π΅Π½Π°, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ измСнСния Π½Π° Github

ВсС измСнСния Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. ПослС этого Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ свою Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· dev, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠ»ΠΈΡ‚ΡŒ Π΅Π΅ Π±Π΅Π· ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ².
Π‘ΠΏΠ΅Ρ€Π²Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ dev Π²Π΅Ρ‚ΠΊΠΈ

И Π·Π°Ρ‚Π΅ΠΌ Π²Π»ΠΈΡ‚ΡŒ всС измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ Π² dev Π²Π΅Ρ‚ΠΊΠ΅, Π² свою Π²Π΅Ρ‚ΠΊΡƒ (1234-bug-login)

5. ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ! Π’Π΅Ρ‚ΠΊΠ° с Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄Π΅Π»Π°Π΅Ρ‚ Π‘reate Pull Request ΠΈΠ· 1234-bug-login Π² dev Π²Π΅Ρ‚ΠΊΡƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Github. Π’Π°ΠΊ ΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ссылку Π½Π° Π·Π°Π΄Π°Ρ‡Ρƒ (#1234) Π² описании Pull Request.

6. Pull Request ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½, любой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ code review, Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, уточнСния ΠΈ Ρ‚.Π΄.
ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ исправлСны ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π° Github ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ способом. Pull Request обновится автоматичСски.

7. Иногда, исправлСния Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡƒΠΆΠ΅ слили свои Π²Π΅Ρ‚ΠΊΠΈ с dev. Π’ этом случаС Π΅ΡΡ‚ΡŒ 2 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°:

β€” ΠΊΠ½ΠΎΠΏΠΊΠ° Merge pull request Π½Π° Github Π°ΠΊΡ‚ΠΈΠ²Π½Π°. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ измСнСния Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‚ с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌΠΈ измСнСниями, ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ трСбуСтся.

β€” ΠΊΠ½ΠΎΠΏΠΊΠ° Merge pull request Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Π°. НСобходимо Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ 4) ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ ΡΠ»ΠΈΡ‚ΡŒ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ измСнСния ΠΈΠ· dev Π²Π΅Ρ‚ΠΊΠΈ Π² 1234-bug-login.

8. ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ! ВсС измСнСния сдСланы, ΠΈ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ написал ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Β«merge itΒ» Π² Pull Request. ΠŸΠΎΡ€Π° Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Merge pull request, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π»ΠΈΡ‚ΡŒ измСнСния 1234-bug-login Π² dev Π²Π΅Ρ‚ΠΊΡƒ.

ВСстированиС

9. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1234-bug-login ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² dev, Jenkins (систСма Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ) автоматичСски обновляСт dev сСрвСр ΠΈΠ· dev Π²Π΅Ρ‚ΠΊΠΈ. QA ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ‚ΠΎΠ³ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ.

10. Если Pull Request вносит ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Jenkins Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ свою Π²Π΅Ρ‚ΠΊΡƒ Π½Π° qa сСрвСр для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ тСстСрами.

Π Π΅Π»ΠΈΠ·

11. ΠŸΠ΅Ρ€Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ production сСрвСра Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Π»ΠΈΡ‚ΡŒ dev Π²Π΅Ρ‚ΠΊΡƒ Π² master. Для этого ΠΌΡ‹ создаСм Pull Request ΠΈΠ· dev Π² master ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Github ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Merge pull request, Π²ΠΎΡ‚ ΠΈ всС. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ², Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

12. Если рСгрСссионноС тСстированиС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ production сСрвСр, ΠΏΡ€ΠΈ этом бСрСтся послСдний ΠΏΠ°ΠΊΠ΅Ρ‚ (Ρ‚ΠΎΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»ΠΎ тСстированиС), ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ устанавливаСтся Π½Π° production сСрвСр.

13. Иногда QA находят ошибки Π²ΠΎ врСмя рСгрСссионного тСстирования. Π’ этом случаС исправлСния Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎ стандартной схСмС, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ° создаСтся ΠΈ сливаСтся Π½Π΅ ΠΈΠ· dev, Π° ΠΈΠ· master. ПослС Ρ€Π΅Π»ΠΈΠ·Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Π»ΠΈΡ‚ΡŒ исправлСния ΠΈΠ· master Π² dev.

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

Git. ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΎ ΠΎ Π³Π»Π°Π²Π½ΠΎΠΌ

Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. Π€ΠΎΡ‚ΠΎ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master

CΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅:

4. Π‘Π°ΠΌΡ‹Π΅ распространСнныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Git;

5. Π Π°Π±ΠΎΡ‚Π° с историСй;

7. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ вСдСния истории ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°;

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

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€! МСня Π·ΠΎΠ²ΡƒΡ‚ Π•Π³ΠΎΡ€, я занимаюсь Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Flutter. Π­Ρ‚ΠΎ моя пСрвая Ρ€Π°Π±ΠΎΡ‚Π° Π² сфСрС IT, ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΎΠ±Π°Π΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ, я столкнулся с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ изучСния систСм контроля вСрсий. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π½Ρ‹ΠΌΠΈ знаниями ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… систСм, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Git. Π˜Ρ‚Π°ΠΊ, Π½Π°Ρ‡Π½Π΅ΠΌ.

β€œWhoah, I’ve just read this quick tuto about git and oh my god it is cool. I feel now super comfortable using it, and I’m not afraid at all to break something.” β€” said no one ever.

НС Ρ‚Π°ΠΊ ΡΡ‚Ρ€Π°ΡˆΠ΅Π½ Ρ‡Ρ‘Ρ€Ρ‚, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΌΠ°Π»ΡŽΡŽΡ‚. Π₯отя, ΠΊΠ°ΠΊ ΠΌΠ½Π΅ каТСтся, это Π½Π΅ касаСтся Git. Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ с этим инструмСнтом. НСсмотря Π½Π° ΠΎΠ±ΠΈΠ»ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ², это Π·Π°Π΄Π°Ρ‡Π° являСтся Π½Π΅ самой Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ. Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· своСго ΠΎΠΏΡ‹Ρ‚Π°, ΠΌΠΎΠ³Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄: Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ самыС Ρ€Π°Π·Π½Ρ‹Π΅ рСсурсы, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ наступит ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅.

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

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ систСму контроля вСрсий, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚.

БистСмы контроля вСрсий ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹:

1. Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ систСмы контроля вСрсий;

2. РаспрСдСлСнныС систСмы контроля вСрсий.

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

Π”Π°Π»Π΅Π΅ я расскаТу ΠΏΡ€ΠΎ структуру Git рСпозитория ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ завСсти. Познакомлю вас с основными, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярными ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π² Git. Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΠ½ΡΠΏΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ. И, Π² Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, я слСгка Π·Π°Ρ‚Ρ€ΠΎΠ½Ρƒ Ρ‚Π΅ΠΌΡƒ вСтвлСния.

Установка Git

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Git.

НиТС я ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡŽ ΠΊΡ€Π°Ρ‚ΠΊΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΊ установкС, Π½ΠΎ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ этой ссылкС Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ источник ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² этом ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Windows. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ ссылкС ΠΈ скачайтС Git ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ вашСго процСссора (32 ΠΈΠ»ΠΈ 64-bit) ΠΈ установитС Π΅Π³ΠΎ.

Linux. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ ссылкС для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ инструкции.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ваша Ρ€Π°Π±ΠΎΡ‚Π° с Git Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ потрСбуСтся ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Git Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π² своСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Π­Ρ‚ΠΎ дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Π’ Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ вся конфигурация Git ΠΈ история ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ эти Ρ„Π°ΠΉΠ»Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, внося Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния Π² ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ содСрТатся настройки Git рСпозитория. НапримСр, здСсь ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ email ΠΈ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

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

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ refs Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС копию ссылок Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΊΠ°Ρ….

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ logs Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° для всСх Π²Π΅Ρ‚ΠΎΠΊ Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ objects Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС BLOB ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… проиндСксирован ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ SHA.

Π€Π°ΠΉΠ» содСрТит ссылку Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π²ΠΎ врСмя слияния Π² этот Ρ„Π°ΠΉΠ» ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ SHA Π²Π΅Ρ‚ΠΊΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ слияниС

Π€Π°ΠΉΠ» Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС ссылки Π² Π²ΠΈΠ΄Π΅ SHA Π½Π° Π²Π΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ участвовали Π² git fetch

Π€Π°ΠΉΠ» Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС ссылки Π² Π²ΠΈΠ΄Π΅ SHA Π½Π° Π²Π΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ участвовали Π² git merge

Π€Π°ΠΉΠ» содСрТит Π² сСбС послСднСС Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π²Π°ΠΌΠΈ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

Π‘Π°ΠΌΡ‹Π΅ распространСнныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Git.

Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. Π€ΠΎΡ‚ΠΎ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с систСмами контроля вСрсий Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅ΠΉΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ дСйствий. Оно ΠΈ понятно, вСдь, ΠΏΠΎ сути, Ссли Π½Π΅ Π±Ρ€Π°Ρ‚ΡŒ Π² расчСт возмоТности Git для управлСния состояниСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ плюшки, Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ваша Ρ€Π°Π±ΠΎΡ‚Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° рядом дСйствий:

1. ВнСсти измСнСния Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚;

Π˜Ρ‚Π°ΠΊ, разбСрСмся Π² этом ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅. ΠŸΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π² Git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ измСнСния Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ создали Ρ„Π°ΠΉΠ» `hello_world.txt` ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ Π΅Π³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.

Π’Π²Π΅Π΄Π΅ΠΌ git status ΠΈ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Команда git status ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ состояниС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ индСкса(staging area). Π­Ρ‚ΠΎ позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Git, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊΠΈΠ΅ измСнСния Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹ создали Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Git опрСдСляСт Π΅Π³ΠΎ ΠΊΠ°ΠΊ нСотслСТиваСмый, ΠΈ Ρ‚ΡƒΡ‚ ΠΆΠ΅ подсказываСт, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ дальшС:

git add hello_world.txt

Π€Π°ΠΉΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² индСкс. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ внСсСнныС измСнСния ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ нСбольшоС описаниС. ДСлаСтся это ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

Π“ΠΎΡ‚ΠΎΠ²ΠΎ! ΠœΡ‹ сдСлали наш ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚! Π”Π°Π»Π΅Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² наш Ρ„Π°ΠΉΠ» строку β€œHello, World!”, ΠΈ снова ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ git status:

Π§Ρ‚ΠΎ ΠΆ, ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния Π½Π° своСй машинС, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ нашСй истории Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ Π½Π° GitHub.

Для Π½Π°Ρ‡Π°Π»Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Как это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² случаС с GitHub ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описано Ρ‚ΡƒΡ‚.

Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² Git:

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° сопоставит ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ с ссылкой Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· эту ссылку. НапримСр:

git remote add origin https://github.com/user/hello_world.git

Π“ΠΎΡ‚ΠΎΠ²ΠΎ! Π’Π΅ΠΏΠ΅Ρ€ΡŒ история ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

Π Π°Π±ΠΎΡ‚Π° с историСй

Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. Π€ΠΎΡ‚ΠΎ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master

Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ, ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ измСнСния Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ.

Настало врСмя ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ историСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. А ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ измСнСния ΠΈ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ.

Для инспСктирования истории Π² Git прСдусмотрСн ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ряд ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим нСсколько ΠΈΠ· Π½ΠΈΡ…:

Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для отобраТСния всСй вашСй истории. Она ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вСсьма ΡƒΠ΄ΠΎΠ±Π½Π°, Ссли Π²Π°ΠΌ понадобилось ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ измСнСния Π²Ρ‹ вносили Ρ€Π°Π½Π΅Π΅. Или Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒΡΡ Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ мСста Π² истории, Π»ΠΈΠ±ΠΎ Ссли Π΅ΡΡ‚ΡŒ Π½ΡƒΠΆΠ΄Π° Π΅Ρ‘ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Если ввСсти git log Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ… Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², выглядит это ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

git log ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ мноТСство Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° Π²Ρ‹Π²ΠΎΠ΄ Π² консоль. Π’Π°ΠΌ прСдоставляСтся Π²Ρ‹Π±ΠΎΡ€ Π½Π° любой вкус.

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ послСдниС Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°? ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°:

Π•ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ вывСсти всС Π² ΠΎΠ΄Π½Ρƒ линию? Запросто:

Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π΄ΠΎ бСсконСчности, поэтому я ΠΎΡΡ‚Π°Π²Π»ΡŽ ссылочку, пСрСйдя ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ, Π²Ρ‹ смоТСтС с Π½ΠΈΠΌΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ.

Команда git show ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для отобраТСния ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ любом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Π² Git, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ»ΠΈ Π²Π΅Ρ‚ΠΊΠ°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ git show ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ HEAD.

Для удобства Ρ€Π°Π±ΠΎΡ‚Ρ‹ git show оснащСн рядом Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… ΠΌΡ‹ рассмотрим Π½ΠΈΠΆΠ΅.

Π—Π΄Π΅ΡΡŒ прСдставлСна полная информация ΠΎ послСднСм ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ измСнСния ΠΎΠ½ Π² сСбя Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚.

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ вывСсти Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ указываСтся ΠΏΠΎΠ»ΡƒΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ, содСрТащим id ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт. Выглядит это ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

git show 349de9d..957e113

Для Π±ΠΎΠ»Π΅Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ сократим id ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠΌ авторство ΠΈ Π΄Π°Ρ‚Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ `git show` ΠΈ с Π΅Ρ‘ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ пСрСйдя ΠΏΠΎ ссылкС.

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ упорядочСнный список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π» HEAD. Π“Ρ€ΡƒΠ±ΠΎ говоря, ΠΎΠ½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ всСх Π²Π°ΡˆΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ.

ОсновноС прСимущСство этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Π²Π΄Ρ€ΡƒΠ³ случайно ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ Ρ‡Π°ΡΡ‚ΡŒ истории ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΠ»ΠΈΡΡŒ Π½Π°Π·Π°Π΄, Π²Ρ‹ смоТСтС ΠΏΡ€ΠΎΠΈΠ½ΡΠΏΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡƒΡ‚Ρ€Π°Ρ‚Ρ‹ Π½ΡƒΠΆΠ½ΠΎΠΉ Π²Π°ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

Π’Ρ‹Π²ΠΎΠ΄ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. Π€ΠΎΡ‚ΠΎ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ `git reset`. Она позволяСт ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ.

Π­Ρ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с трСмя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ:

Π”Π°Π²Π°ΠΉΡ‚Π΅ вСрнСмся ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ ΠΈ рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π˜Ρ‚Π°ΠΊ, Π² Ρ…ΠΎΠ΄Π΅ нашСй Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΌΡ‹ сдСлали Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π΄ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ это Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

Π”Π°Π»Π΅Π΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ индСкс:

Как ΠΈ оТидалось, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ HEAD пСрСмСстился Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π° состояниС индСкса ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ git status:

Π‘Π½ΠΎΠ²Π° провСряСм git status :

Π—Π΄Π΅ΡΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ HEAD пСрСмСстился Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π° всС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ измСнСния Π±Ρ‹Π»ΠΈ стСрты, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄Π½ΠΎ ΠΏΠΎ пустому индСксу ΠΈ Π·ΠΎΠ½Π΅ отслСТиваСмых Ρ„Π°ΠΉΠ»ΠΎΠ².

И Ссли ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ сСйчас содСрТимоС Ρ„Π°ΠΉΠ»Π°, Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ строку β€œHello, world!”, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ с Π²Π°ΠΌΠΈ добавляли Π² Ρ„Π°ΠΉΠ» Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅.

Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ Π² Git

ΠŸΠΎΡ‡Ρ‚ΠΈ каТдая систСма контроля вСрсий ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ вСтвлСния. Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ вСрсиями ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли Ρ€Π°Π½ΡŒΡˆΠ΅ история вашСй Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ являла собой ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ….

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

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ с этим ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Π£ нас имССтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

Git ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΎ врСмя ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ создаСт Π²Π΅Ρ‚ΠΊΡƒ master ΠΈ ΡƒΠΆΠ΅ Π²Π΅Π΄Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π½Π΅ΠΉ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π² этом ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ ввСдя ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ понадобилось ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ вСсти Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π½Π΅ΠΉ. Для этого сначала Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Ρ‘ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ.

ДСлаСтся это ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git branch
. Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим Π²Π΅Ρ‚ΠΊΡƒ β€œdev”:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ввСдя ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git branch ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π—Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΠΎΠΉ Git ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git checkout
. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠΌΡΡ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ β€œdev”.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ внСсСм Π»ΡŽΠ±Ρ‹Π΅ измСнСния Π² Ρ„Π°ΠΉΠ» hello_world.txt ΠΈ сдСлаСм ΠΊΠΎΠΌΠΌΠΈΡ‚, послС Ρ‡Π΅Π³ΠΎ посмотрим, ΠΊΠ°ΠΊ выглядят наши Π²Π΅Ρ‚ΠΊΠΈ послС рСдактирования.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ master

git checkout master

Помимо раздСлСния истории Π² Git ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ Π΄Π²Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ»ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² master. Π’Π°ΠΊΠΎΠΉ процСсс слияния ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git merge
. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ»ΠΈΡ‚ΡŒ измСнСния ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ β€œdev” Π² Π²Π΅Ρ‚ΠΊΡƒ β€œmaster”, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ β€œmaster” ΠΈ Π² Π½Π΅ΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ вСдСния истории ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Моя ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Ρ…ΠΎΡ‡Ρƒ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ соглашСния ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ вСдСния истории Π² Git.

НапримСр вас ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ нСсколько ΠΏΡ€Π°Π²ΠΈΠ», ΠΏΡ€ΠΈ написании сообщСния ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Или ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ вас ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ стратСгиСй вСтвлСния Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Вас Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π² количСствС отправляСмых ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, я расскаТу ΠΊΠ°ΠΊΠΈΠ΅ соглашСния Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ.

1. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

НиТС прСдставлСн шаблон Π½Π°ΡˆΠΈΡ… сообщСний ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master. Π€ΠΎΡ‚ΠΎ Π§Π΅ΠΌ отличаСтся master ΠΈ origin master

ΠœΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π΄Π°Ρ‚Ρƒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈ Π²Π΅Ρ€ΡΠΈΡŽ прилоТСния для удобства поиска Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² истории.

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊΠΎΠΉ Ρ„Ρ€ΠΎΠ½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π² этом ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅.

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹:

2. БтратСгия вСтвлСния:

Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ достаточно ΠΌΠ½ΠΎΠ³ΠΎ стратСгий вСтвлСния. ВсС ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ.

Π’ нашСм случаС, ΠΌΡ‹ выдСляСм Π΄Π²Π΅ основныС Π²Π΅Ρ‚ΠΊΠΈ master ΠΈ «release». Master ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊ Π²Ρ‹ΠΊΠ»Π°Π΄ΠΊΠ΅ Π½ΠΎΠ²Ρ‹Ρ… вСрсий прилоТСния. Код попавший Π² «master» ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ автоматичСскиС тСсты, послС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выполняСтся сборка ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ дальнСйшими дСйствиями. Π”Π°Π»Π΅Π΅ Ссли Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠΉ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π΅Ρ‚, ΠΌΡ‹ сливаСм Π²Π΅Ρ‚ΠΊΡƒ «master» Π² Π²Π΅Ρ‚ΠΊΡƒ «release». Π’Π°ΠΌ снова Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ автоматичСскиС тСсты, ΠΈ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ сборки ΠΊ Π²Ρ‹ΠΊΠ»Π°Π΄ΠΊΠ΅ Π² ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚Ρ‹.

Для вСдСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΡ‹ создаСм feature Π²Π΅ΠΊΡ‚ΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ каТдая Π²Π΅Ρ‚ΠΊΠ° ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. НапримСр, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ±Π»Π°ΠΊΠ΅, Ρ‚ΠΎ программист создаст Π²Π΅Ρ‚ΠΊΡƒ «feature-cloud» ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ вСсти Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π½Π΅ΠΉ.

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

Π’ качСствС Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ закрСплСния ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π°Π²Ρ‹ΠΊΠΎΠ², ΠΎΡΡ‚Π°Π²Π»ΡŽ ссылку Π½Π° ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅Π½Π°ΠΆΠ΅Ρ€ для Git.

А Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° ΠΊΠ½ΠΈΠ³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ я пользовался ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ рСсурсы:

Π’Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ интСрСсно ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΏΠΎ Git Π΅ΡΡ‚ΡŒ Ρƒ вас Π² компаниях ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ интСрСсныС рСсурсы Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ.

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

In Git, what is the difference between origin/master vs origin master?

I know, origin is a term for the remote repository and master is the branch there.

I am purposely omitting the «context» here and I am hoping that the answer should not depend upon the context. So in git command lines, what is the difference between origin/master and origin master. Is there a non-ambiguous way to understand when to use origin/master and when I should use origin master?

7 Answers 7

(Note: When this question was originally posted, «master» was the default name for branches in Git. Since «main» is now the default name, this answer has been updated to use «main», in the hope that this will be more natural for people new to Git.)

There are actually three things here: origin main is two separate things, and origin/main is one thing. Three things total.

Is origin/main remote?

Example: pull in two steps

Since origin/main is a branch, you can merge it. Here’s a pull in two steps:

Then you can push your new changes in main back to origin :

More examples

You can fetch multiple branches by name.

You can merge multiple branches.

Can you use a different name?

I can do that easily enough:

Example (in local branch master ):

origin/master is the remote master branch

You would use origin master when pushing, for example. git push origin master is simply telling GIT to push to the remote repository the local master branch.

origin is a name for remote git url. There can be many more remotes example below.

It is possible that remote bangalore has advanced since you have done «fetch» or «pull»

origin is nothing but the original name given to the remote repository. Origin is just a location that’s all. In the below example the repository URL is the origin or the source of truth of where your code resides.

now this origin or the source of truth to you repository can have branches this includes master or develop or you name it.

Now taking origin in the context we can easily under the below things mean.

So if I type git pull origin master What happens?.

This will update my local master branch (on my local machine) will all changes available on the remote master branch (i.e. origin master).

Now I would like my changes to merged with my local master branch how can I achieve this?

git merge origin/master

This will update my local master branch with my changes. The reason to have origin/master is just naming convention you could have named your local master branch origin/master or abcd. So you could have named you local branch instead of origin/master to just master and the command for git would be git merge master.

How would I update my remote master branch with all the local changes?

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

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

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