Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ

Git для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π£Ρ€ΠΎΠΊ 9.
Блияния ΠΈΠ»ΠΈ ΠΌΠ΅Ρ€Π΄ΠΆΠΈ Π²Π΅Ρ‚ΠΎΠΊ

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

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

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

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… ΡΠΎΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡΡ… ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части курса.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€Π΄ΠΆ ΠΈΠ»ΠΈ слияниС Π²Π΅Ρ‚ΠΎΠΊ

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΌΠ΅Ρ€Π΄ΠΆ своСй Π²Π΅Ρ‚ΠΊΠΈ Π² мастСр ΠΈ ΠΌΠ΅Ρ€Π΄ΠΆ мастСра Π² свою Π²Π΅Ρ‚ΠΊΡƒ.

ΠœΠ΅Ρ€Π΄ΠΆ Π²Π΅Ρ‚ΠΊΠΈ Π² мастСр

ВыполняСтся послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ своСй Π²Π΅Ρ‚ΠΊΠΎΠΉ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git merge. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΌΠ΅Ρ€Π΄ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π² мастСр, Π½ΡƒΠΆΠ½ΠΎ сначала ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² мастСр, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ git merge branch_name.

ΠŸΡ€ΠΈ этом Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅ ситуации

ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π½ΠΈΡ… ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅

Пока ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π°Π΄ Π²Π΅Ρ‚ΠΊΠΎΠΉ, Π² мастСрС Π½Π΅ появилось Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ создали Π²Π΅Ρ‚ΠΊΡƒ, ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π°Π΄ Π½Π΅ΠΉ, ΡΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ Π·Π°Π»ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² мастСр, Π° Π·Π° это врСмя Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ‚Π°ΠΌ Π½Π΅ появилось. Π’ΠΎΠ³Π΄Π° слияниС ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‚Π°ΠΊ

Git ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ это Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ просто ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Ρ… старого. Π­Ρ‚ΠΎ простая ситуация ΠΈ git Π½Π΅ Π·Π°Π΄Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… вопросов.

НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ сразу Π·Π°ΠΏΡƒΡˆΠΈΡ‚ΡŒ измСнСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ, ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ header, Ссли ΠΎΠ½Π° большС Π½Π΅ Π½ΡƒΠΆΠ½Π°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ другая ситуация.

Пока ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π°Π΄ Π²Π΅Ρ‚ΠΊΠΎΠΉ, Π² мастСрС появились ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΎΡ‚ ΠΊΠΎΠ»Π»Π΅Π³

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ Π½Π° мастСр

ΠŸΠΎΡ‡Π΅ΠΌΡƒ «is up-to-date»? ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΅Ρ‰Π΅ Π½Π΅ сдСлали git pull. Π”Π΅Π»Π°Π΅ΠΌ

ΠœΠ΅Ρ€Π΄ΠΆΠΈΠΌ свою Π²Π΅Ρ‚ΠΊΡƒ Π² мастСр

И Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ Π·Π°ΠΏΡƒΡˆΠΈΡ‚ΡŒ измСнСния

Π§Ρ‚ΠΎ Ссли сначала Π½Π΅ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°Ρ‚ΡŒ мастСр, Π° ΡΠΌΠ΅Ρ€Π΄ΠΆΠΈΡ‚ΡŒ свою Π²Π΅Ρ‚ΠΊΡƒ

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ измСнится, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ сначала ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΡƒ мастСр, Π° ΡƒΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΌ Π·Π°Π»ΠΈΠ²Π°Ρ‚ΡŒ свои измСнСния. А Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ свою Π²Π΅Ρ‚ΠΊΡƒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мастСра. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ стоит ΠΏΠΎΡ‡Π°Ρ‰Π΅ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°Ρ‚ΡŒ мастСр Π² свою Π²Π΅Ρ‚ΠΊΡƒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ Π² своСй Π²Π΅Ρ‚ΠΊΠ΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Ρƒ нас мСньшС риска Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΠΎΠ»ΠΎΠΌΠ°Ρ‚ΡŒ. А Ссли ΠΏΠΎΠ»ΠΎΠΌΠ°Π΅ΠΌ, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Ρ‡ΠΈΠ½ΠΈΡ‚ΡŒ это Π² своСй Π²Π΅Ρ‚ΠΊΠ΅, Π° Π½Π΅ Π² мастСрС.

Как Π²ΠΌΠ΅Ρ€Π΄ΠΆΠΈΡ‚ΡŒ мастСр Π² свою Π²Π΅Ρ‚ΠΊΡƒ

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΈΠ΄Π΅ΠΌ Π² мастСр, подтягиваСм измСнСния с сСрвСра, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π΅Π»Π°Π΅ΠΌ git pull. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ Π² свою Π²Π΅Ρ‚ΠΊΡƒ ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ git merge master

Π—Π°Ρ‚Π΅ΠΌ провСряСм, Ρ‡Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ поломалось ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

ΠœΠ΅Ρ€Π΄ΠΆ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹

Π§Π΅ΠΌ Ρ‡Π°Ρ‰Π΅ ΠΌΠ΅Ρ€Π΄ΠΆΠΈΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой Π²Π΅Ρ‚ΠΊΠΈ, Ρ‚Π΅ΠΌ большС появляСтся Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ€Π΄ΠΆ-ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ появляСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ подтягиваСм мастСр Π² свою Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ»ΠΈ сливаСм свою Π²Π΅Ρ‚ΠΊΡƒ Π² мастСр. Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π΅ хранят ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΎΠ½ΠΈ хранят Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΊΡ‚ ΠΌΠ΅Ρ€Π΄ΠΆΠ° ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ Π½Π°ΠΉΠ΄Π΅ΠΌ ΠΌΠ΅Ρ€Π΄ΠΆ-ΠΊΠΎΠΌΠΌΠΈΡ‚ с Ρ…ΡΡˆΠ΅ΠΌ 051f754

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π΅Π³ΠΎ содСрТимоС

Π’ΠΎ Π΅ΡΡ‚ΡŒ информация Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² мастСр Π±Ρ‹Π»Π° Π·Π°Π»ΠΈΡ‚Π° Π²Π΅Ρ‚ΠΊΠ° news. Π‘Π°ΠΌΠΈ измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ Π² Π²Π΅Ρ‚ΠΊΠ΅ news, Π»Π΅ΠΆΠ°Ρ‚ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ….

Π‘ΠΏΠΎΡ€Ρ‹ ΠΎ Ρ‚ΠΎΠΌ, Π΅ΡΡ‚ΡŒ польза ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², вСдутся Π³ΠΎΠ΄Π°ΠΌΠΈ ΠΈ Π½Π΅ закончатся, Π²ΠΈΠ΄ΠΈΠΌΠΎ, Π½ΠΈΠΊΠΎΠ³Π΄Π°.

ΠœΠ΅Ρ€Π΄ΠΆΠΈ всСгда проходят Ρ‚Π°ΠΊ Π³Π»Π°Π΄ΠΊΠΎ?

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

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°Ρ… ΠΈ ΠΈΡ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅.

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

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Git Merge ΠΈ Git Rebase: Π·Π°Ρ‡Π΅ΠΌ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

Часто Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ Merge (слияниС) ΠΈ Rebase (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅). Π’ Π“ΡƒΠ³Π»Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ€Π°Π·Π½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽΡ‚ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Rebase, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я объясню, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ слияниС ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ (ΠΈΠ»ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΈ ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ

Git Merge ΠΈ Git Rebase ΠΏΡ€Π΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Ρ†Π΅Π»ΡŒ. Они ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ. Π₯отя конСчная Ρ†Π΅Π»ΡŒ одинаковая, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅.

НСкоторыС ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Rebase, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Merge. Π’ этом Π΅ΡΡ‚ΡŒ свои ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы.

Git Merge

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

Π‘Π»Π΅ΠΉΡ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ master Π² Π²Π΅Ρ‚ΠΊΡƒ feature, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ checkout ΠΈ merge.

Π­Ρ‚ΠΎ создаст Π½ΠΎΠ²Ρ‹ΠΉ Β«Merge commitΒ» Π² Π²Π΅Ρ‚ΠΊΠ΅ feature, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΎΠ±Π΅ΠΈΡ… Π²Π΅Ρ‚ΠΎΠΊ.

Git Rebase

Rebase β€” Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ пСрСнСсти измСнСния ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ. Rebase сТимаСт всС измСнСния Π² ΠΎΠ΄ΠΈΠ½ Β«ΠΏΠ°Ρ‚Ρ‡Β». Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ‚Ρ‡ Π² Ρ†Π΅Π»Π΅Π²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ feature Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ всю Π²Π΅Ρ‚ΠΊΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° измСняСтся, ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² основной Π²Π΅Ρ‚ΠΊΠ΅.

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅

Π­Ρ‚ΠΎ позволяСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΡ€ΠΈ ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Π² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π­Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ автоматичСскоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ обСспСчиваСт ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ историСй ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для очистки истории Π΄ΠΎ слияния Π²Π΅Ρ‚ΠΊΠΈ feature Π² master.

Π­Ρ‚ΠΎ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, пСрСчислив всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½Ρ‹.

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ

Какой ΠΈΠ· Π½ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π»ΡƒΡ‡ΡˆΠ΅? Π§Ρ‚ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ экспСрты?

Π’Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ СдинствСнно ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅. Всё зависит ΠΎΡ‚ потрСбностСй ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°ΠΉΡ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° основании ΠΊΠΎΠΌΠΏΠ΅Ρ‚Π΅Π½Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Git. Для вас Π²Π°ΠΆΠ½Π° простота ΠΈΠ»ΠΈ пСрСзаписываниС истории, Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅?

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

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

Вонкости Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡƒΡ‡Π½ΠΎΠ³ΠΎ git-merge

Π’ΡΡ‚ΡƒΠΏΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ слово

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ уровня для вСтвлСния Π² Git ΡΠ²Π»ΡΡŽΡ‚ΡΡ git-branch, git-checkout, git-rebase, git-log ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, git-merge. Для сСбя я ΡΡ‡ΠΈΡ‚Π°ΡŽ git-merge Π·ΠΎΠ½ΠΎΠΉ наибольшСй отвСтствСнности, Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ магичСской энСргии ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… возмоТностСй. Но это достаточно слоТная ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΈ Π΄Π°ΠΆΠ΅ достаточно Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Git ΠΏΠΎΡ€ΠΎΠΉ Π±Ρ‹Π²Π°Π΅Ρ‚ нСдостаточным для освоСниС всСх Π΅Π΅ тонкостСй ΠΈ умСния ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивно Π² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ нСстандартной ситуации.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΆΠ΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² тонкостях git-merge ΠΈ ΠΏΡ€ΠΈΡ€ΡƒΡ‡ΠΈΡ‚ΡŒ эту Π²Π΅Π»ΠΈΠΊΡƒΡŽ магию.

Π—Π΄Π΅ΡΡŒ я Ρ…ΠΎΡ‡Ρƒ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ случай Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡƒΡ‡Π½ΠΎΠ³ΠΎ слияния, ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ я понимаю слияниС Π±Π΅Π· ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ². ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² β€” ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ интСрСсная Ρ‚Π΅ΠΌΠ°, достойная ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ. Π― ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ со ΡΡ‚Π°Ρ‚ΡŒΠ΅ΠΉ Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ устройство Git: Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ merge, содСрТащСй ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я ΠΎΠΏΠΈΡ€Π°ΡŽΡΡŒ.

Анатомия ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Если Π²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΌΠ°Π½ΡƒΠ°Π»Ρƒ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

По Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ счСту, Π² Git Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²ΠΈΠ΄Π° слияния: ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠ° (fast-forward merge) ΠΈ «истинноС» слияниС (true merge). Рассмотрим нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΎΠ±ΠΎΠΈΡ… случаСв.

Β«Π˜ΡΡ‚ΠΈΠ½Π½ΠΎΠ΅Β» слияниС (true merge)

ΠœΡ‹ отклоняСмся ΠΎΡ‚ Π²Π΅Ρ‚ΠΊΠΈ master, Ρ‡Ρ‚ΠΎΠ±Ρ‹ внСсти нСсколько Π±Π°Π³ΠΎΠ² ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρƒ нас ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ Π½Π° Π²Π΅Ρ‚ΠΊΠ΅ master git merge feature :

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² тСстовом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я создал ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для этого случая:

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ (M):

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π΄Π²ΡƒΡ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-Π΄Π΅Ρ€Π΅Π²ΠΎ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ² рСпозитория, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΡ‚ΠΎ Π²ΠΈΠ½ΠΎΠ²Π΅Π½ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΡƒΠ΄Π° ссылаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ master:

Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ½ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½ΡƒΡ‚ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ (M).

Squash ΠΈ no-commit

Π’ случаС примСнСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ слияния ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π²Π΅Ρ‚ΠΊΠΈ feature Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Π½Π°ΡˆΡƒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ, Π½ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ Sq Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ всС ΠΈΡ… измСнСния:

ПозТС, Π² случаС выполнСния «классичСского» git merge feature ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это. Π’ΠΎΠ³Π΄Π° история ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

ΠŸΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠ° (fast-forward merge)

Рассмотрим Π΄Ρ€ΡƒΠ³ΠΎΠΉ случай истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²:

ВсС ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Ρ€Π°Π·, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² Π²Π΅Ρ‚ΠΊΠ΅ master Π½Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² послС отвСтвлСния. Π’ этом случаС происходит слияниС fast-forward (ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠ°). Π’ этом случаС отсутствуСт ΠΊΠΎΠΌΠΌΠΈΡ‚ слияния, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ (Π²Π΅Ρ‚ΠΊΠ°) master просто устанавливаСтся Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ Y, Ρ‚ΡƒΠ΄Π° ΠΆΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Π²Π΅Ρ‚ΠΊΠ° feature:

Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΈ слияния

БтратСгия resolve

Π—Π΄Π΅ΡΡŒ C β€” ΠΎΠ±Ρ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π΄Π²ΡƒΡ… Π²Π΅Ρ‚ΠΎΠΊ, Π΄Π΅Ρ€Π΅Π²ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ², ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ этому ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ, принимаСтся Π·Π° ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΠΊΠ°. ΠΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ измСнСния, ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² Π²Π΅Ρ‚ΠΊΠ°Ρ… master ΠΈ feature со Π²Ρ€Π΅ΠΌΠ΅Π½ этого ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, послС Ρ‡Π΅Π³ΠΎ для ΠΊΠΎΠΌΠΌΠΈΡ‚Π° (M) создаСтся новая вСрсия Π΄Π΅Ρ€Π΅Π²Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π² соотвСтствии с ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ 4 ΠΈ 5 нашСго условного Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

БтратСгия recursive

Для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ этой стратСгии позаимствуСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΡΡ‚Π°Ρ‚ΡŒΠΈ Merge recursive strategy ΠΈΠ· Π±Π»ΠΎΠ³Π° Β«The plasticscm blogΒ»:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ

Π˜Ρ‚Π°ΠΊ, Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Π²Π΅Ρ‚ΠΊΠΈ: main ΠΈ task001. И Ρ‚Π°ΠΊ Π²Ρ‹ΡˆΠ»ΠΎ, Ρ‡Ρ‚ΠΎ наши Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π·Π½Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΠΊ Π² извращСниях: ΠΎΠ½ΠΈ слили ΠΊΠΎΠΌΠΌΠΈΡ‚ 15 ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ main с ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ 12 ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ task001, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ 16 с ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ 11. Когда Π½Π°ΠΌ понадобилось ΡΠ»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ, оказалось, Ρ‡Ρ‚ΠΎ поиск Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΠΊΠ° β€” Π΄Π΅Π»ΠΎ Π½Π΅Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΠ΅, Π½ΠΎ стратСгия recursive с Π΅Π΅ конструированиСм Β«Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎΒ» ΠΏΡ€Π΅Π΄ΠΊΠ° Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ

]
Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ рСкурсивного слияния с этой ΠΎΠΏΡ†ΠΈΠ΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ стратСгии subtree, Π³Π΄Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ основываСтся Π½Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠ°ΠΊ Π΄Π΅Ρ€Π΅Π²ΡŒΡ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ слиянии. ВмСсто этого Π² этом случаС указываСтся ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.

БтратСгия octopus

Π­Ρ‚Π° стратСгия ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для слияниС Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π΄Π²ΡƒΡ… Π²Π΅Ρ‚ΠΎΠΊ. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΉΡΡ Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ, соотвСтствСнно, большС Π΄Π²ΡƒΡ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ.

Данная стратСгия ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ². Π’ связи с этим ΠΏΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΊΠ°Π· Π² слиянии ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ стратСгии octopus.

БтратСгия ours

НС слСдуСт ΠΏΡƒΡ‚Π°Ρ‚ΡŒ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ ours ΠΈ ΠΎΠΏΡ†ΠΈΡŽ ours стратСгии recursive.

БтратСгия ours β€” Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ срСдство.

БтратСгия subtree

Для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ стратСгии возьмСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· Π³Π»Π°Π²Ρ‹ БлияниС ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² ΠΊΠ½ΠΈΠ³ΠΈ Β«Pro GitΒ».

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½ΠΎΠ²Ρ‹Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, rack:

Ясно, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠΈ master ΠΈ rack_branch ΠΈΠΌΠ΅ΡŽΡ‚ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ. Π”ΠΎΠ±Π°Π²ΠΈΠΌ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· rack_branch Π² master с использованиСм squash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ засорСния истории Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Π½Π°ΠΌ Ρ„Π°ΠΊΡ‚Π°ΠΌΠΈ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° rack Ρƒ нас Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

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

Git: совСты Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ – Ρ‡Π°ΡΡ‚ΡŒ 2

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ

Π“Π»Π°Π²Π° 8. Π’Π΅Ρ‚ΠΊΠΈ

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

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ. Π£ Π²Π΅Ρ‚ΠΊΠΈ Π΅ΡΡ‚ΡŒ имя. ΠŸΡƒΡΡ‚ΡŒ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ my test work. Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС ваши ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ΄Ρ‚ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΡƒΠ΄Π°. Π”ΠΎ этого ΠΎΠ½ΠΈ шли Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ – Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Ρ‘ master. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ρ€Π°Π½ΡŒΡˆΠ΅ Π²Ρ‹ Π±Ρ‹Π»ΠΈ Π² Π²Π΅Ρ‚ΠΊΠ΅ master (Ρ…ΠΎΡ‚ΡŒ ΠΈ Π½Π΅ Π·Π½Π°Π»ΠΈ этого), Π° сСйчас ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ my test work. Π­Ρ‚ΠΎ выглядит Ρ‚Π°ΠΊ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ

ПослС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Β«3Β» создана Π²Π΅Ρ‚ΠΊΠ° ΠΈ ваши Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Β«4Β»ΠΈ Β«5Β» пошли Π² Π½Π΅Ρ‘. А ваши ΠΊΠΎΠ»Π»Π΅Π³ΠΈ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Π² Π²Π΅Ρ‚ΠΊΠ΅ master, поэтому ΠΈΡ… Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Β«6Β», Β«7Β», Β«8Β» Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π²Π΅Ρ‚ΠΊΡƒ master. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ пСрСстала Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ.

На Ρ‡Ρ‚ΠΎ это повлияло? Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ видят ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅. А Π²Ρ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² своих Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ…. Π₯отя ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π²Π΅Ρ‚ΠΊΠ΅ master Π²Ρ‹ всС-Ρ‚Π°ΠΊΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚Π΅.

Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ смоТСтС Π½ΠΈΠΊΠΎΠΌΡƒ Π½Π΅ мСшая ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свою ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Если Π΅Ρ‘ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ вас Π½Π΅ устроит, Π²Ρ‹ просто ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ master (Π½Π° Π΅Ρ‘ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ – Π½Π° рисункС это ΠΊΠΎΠΌΠΌΠΈΡ‚ Β«8Β»). Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Ρ‹ Π² вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ станут Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρƒ Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠ»Π»Π΅Π³, Π° ваши измСнСния исчСзнут. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ваша рабочая копия стала слСпком ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Β«8Β». По ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π½Ρ‘ΠΌ Π½Π΅Ρ‚ Π²Π°ΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, сдСланных Π² Π²Π΅Ρ‚ΠΊΠ΅ my test work.

Π“Π»Π°Π²Π° 9. БлияниС Π²Π΅Ρ‚ΠΎΠΊ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ нСзависимо. МоТно ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, Ρ‚ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ – ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΡΡΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Π’Π΅Ρ‚ΠΊΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° checkout.

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ

Π—Π΄Π΅ΡΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ Β«8Β» – это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся merge-commit. Когда ΠΌΡ‹ выполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ merge, систСма сама создаСт этот ΠΊΠΎΠΌΠΌΠΈΡ‚. Π’ Π½Ρ‘ΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ измСнСния Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠ»Π»Π΅Π³ ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Β«5Β», Β«6Β», Β«7Β», Π° Ρ‚Π°ΠΊΠΆΠ΅ ваша Ρ€Π°Π±ΠΎΡ‚Π° ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Β«3Β», Β«4Β».

ИзмСнСния ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Β«1Β» ΠΈ Β«2Β» ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, вСдь ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ сдСланы Π΄ΠΎ создания Π²Π΅Ρ‚ΠΊΠΈ. А Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»ΠΈ ΠΈ Π² Π²Π΅Ρ‚ΠΊΠ΅ master, ΠΈ Π² Π²Π΅Ρ‚ΠΊΠ΅ my test work.

Команда merge Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ посылаСт Π² origin. ЕдинствСнный Π΅Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ – это merge-commit (Π½Π° рисункС ΠΊΡ€ΡƒΠΆΠΎΠΊ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 8), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появится Ρƒ вас Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Π•Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈ ваши ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Волько послС этого merge-commit отправится Π½Π° origin – Ρ‚ΠΎΠ³Π΄Π° ΠΊΠΎΠ»Π»Π΅Π³ΠΈ увидят Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вашСй Ρ€Π°Π±ΠΎΡ‚Ρ‹, сдСлав pull.

Π“Π»Π°Π²Π° 10. НСсколько ΠΌΠ΅Ρ€ΠΆΠ΅ΠΉ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ А Π² Π²Π΅Ρ‚ΠΊΡƒ Π’

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π½Π΅ΠΉ ΠΈ Π·Π°Π»ΠΈΡ‚ΡŒ измСнСния Π² Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. На ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ послС объСдинСния Π²Π΅Ρ‚ΠΊΠΈ слились вмСстС. ΠžΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π»ΠΈ это, Ρ‡Ρ‚ΠΎ Π² Π²Π΅Ρ‚ΠΊΠ΅ my test work Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ нСльзя – ΠΎΠ½Π° вСдь ΡƒΠΆΠ΅ объСдинилась с master? НСт, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ Π² Π²Π΅Ρ‚ΠΊΡƒ my test work ΠΈ пСриодичСски ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π² Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Как это выглядит:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Ρ€Π΅Π·ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ Π½Π΅ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ – Ρ‚Π°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΈΠ· ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² ΠΊΠ°ΠΊΡƒΡŽ Π±Ρ‹Π» ΠΌΠ΅Ρ€ΠΆ. Π’ этой ситуации Π±Ρ‹Π»ΠΎ Π΄Π²Π° ΠΌΠ΅Ρ€ΠΆΠ° ΠΈ ΠΎΠ±Π° ΠΈΠ· ΠΏΡ€Π°Π²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Π»Π΅Π²ΡƒΡŽ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ объСдинСния стал merge-commit Β«7Β», Π° Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ – merge-commit Β«10Β». ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ΅Ρ€ΠΆ происходит ΠΈΠ· ΠΏΡ€Π°Π²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Π»Π΅Π²ΡƒΡŽ, Ρ‚ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² слСпкС Β«8Β» Π΅ΡΡ‚ΡŒ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ сдСланы Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ Β«3Β». А Π²ΠΎΡ‚ Π² слСпкС Β«11Β» Π½Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ сдСланы Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ Β«5Β». Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ этого. Если Π½Π΅Ρ‚, ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π³Π»Π°Π²Ρ‹ ΠΎ Π²Π΅Ρ‚ΠΊΠ°Ρ… Π΅Ρ‰Ρ‘ Ρ€Π°Π·.

Π“Π»Π°Π²Π° 11. ΠœΠ΅Ρ€ΠΆ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π² ΠΎΠ±Π΅ стороны

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ всё врСмя ΠΌΠ΅Ρ€ΠΆΠΈΠ»ΠΈ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ my test work Π² Π²Π΅Ρ‚ΠΊΡƒ master. МоТно Π»ΠΈ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ сторону ΠΈ Π΅ΡΡ‚ΡŒ Π»ΠΈ Π² этом смысл? МоТно. Π•ΡΡ‚ΡŒ.

Если Π²Ρ‹ Π΄ΠΎΠ»Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² своСй Π²Π΅Ρ‚ΠΊΠ΅, рСкомСндуСтся пСриодичСски Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ΅Ρ€ΠΆ Π² Π½Π΅Ρ‘ ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ вСрсиями Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ люди. Как это выглядит:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ

Π—Π΄Π΅ΡΡŒ Π΄Π²Π° ΠΌΠ΅Ρ€ΠΆΠ° ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ my test work Π² Π²Π΅Ρ‚ΠΊΡƒ master ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ€ΠΆ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ сторону. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ объСдинСния стал merge-commit Β«8Β». Благодаря Π΅ΠΌΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, слСпок ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Β«11Β» содСрТит измСнСния ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Β«7Β». А Π²ΠΎΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Β«9Β» Π² слСпкС Β«11Β» ΡƒΠΆΠ΅ Π½Π΅Ρ‚, вСдь этот ΠΊΠΎΠΌΠΌΠΈΡ‚ Π±Ρ‹Π» сдСлан послС ΠΌΠ΅Ρ€ΠΆΠ°.

Π“Π»Π°Π²Π° 12. ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ ΠΈΡ… Ρ…Π΅ΡˆΠΈ

Как Git Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹? На ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°Ρ… ΠΌΡ‹ для простоты ΠΏΠΎΠΌΠ΅Ρ‡Π°Π»ΠΈ ΠΈΡ… порядковыми Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ. На самом Π΄Π΅Π»Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Git обозначаСтся Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ строкой:

Π­Ρ‚ΠΎ «названия» ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Git автоматичСски Π΄Π°Ρ‘Ρ‚ ΠΈΠΌ ΠΏΡ€ΠΈ создании. Π’ΠΎΠΎΠ±Ρ‰Π΅, Ρ‚Π°ΠΊΠΈΠ΅ строки принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Β«Ρ…Π΅ΡˆΒ». Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Ρ…Π΅Ρˆ Ρ€Π°Π·Π½Ρ‹ΠΉ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΎΠ± ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ Ρ…Π΅Ρˆ этого ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Зная Ρ…Π΅Ρˆ, ΠΎΠ½ смоТСт Π½Π°ΠΉΡ‚ΠΈ этот ΠΊΠΎΠΌΠΌΠΈΡ‚ (Ссли это ваш ΠΊΠΎΠΌΠΌΠΈΡ‚, Ρ‚ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΅Π³ΠΎ Π½Π°Π΄ΠΎ сначала Π·Π°ΠΏΡƒΡˆΠΈΡ‚ΡŒ).

Π“Π»Π°Π²Π° 13. Π’Π΅Ρ‚ΠΊΠΈ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ

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

Познакомимся с ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ «указатСля». Π’ ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ состоит ΠΈΠ· своСго названия ΠΈ Ρ…Π΅ΡˆΠ°. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ указатСля:

Π’ΡƒΡ‚ Π²Ρ‹ скаТСтС: Β«master – Π·Π½Π°ΠΊΠΎΠΌΠΎΠ΅ имя! Π£ нас Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π»Π°ΡΡŒ главная рабочая Π²Π΅Ρ‚ΠΊΠ°Β». И это совпадСниС Π½Π΅ случайно. Git ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ для обозначСния Π²Π΅Ρ‚ΠΎΠΊ. ИдСя простая: Ссли Π½ΡƒΠΆΠ½Π° новая Π²Π΅Ρ‚ΠΊΠ°, Git создаёт Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Π΄Π°Ρ‘Ρ‚ Π΅ΠΌΡƒ имя Π²Π΅Ρ‚ΠΊΠΈ ΠΈ записываСт Π² Π½Π΅Π³ΠΎ Ρ…Π΅Ρˆ послСднСго (самого свСТСго) ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π²Π΅Ρ‚ΠΊΠΈ. Π’Π΅Ρ‚ΠΊΠ° создана!
Благодаря Ρ…Π΅ΡˆΡƒ Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ссылаСтся ΠΈΠ»ΠΈ Β«ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Β» Π½Π° послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π²Π΅Ρ‚ΠΊΠΈ. Π­Ρ‚ΠΎΠ³ΠΎ достаточно Git’у, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Git Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚. Π’ΠΎΡ‚ Ρ‚Π°ΠΊ всё минималистично.

На ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π΅ΡΡ‚ΡŒ свой ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ. Когда Π² Π²Π΅Ρ‚ΠΊΡƒ добавляСтся ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, Ρ…Π΅Ρˆ Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ мСняСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ снова Β«ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΒ» Π½Π° послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ сдвиганиС указатСля Π²Π΅Ρ‚ΠΊΠΈ Π½Π° послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ с прСдпослСднСго.

Если Π²Ρ‹ проситС Git ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ (ΠΊΠΎΠΌΠ°Π½Π΄Π° checkout), Π΅ΠΌΡƒ достаточно Π½Π°ΠΉΡ‚ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ этой Π²Π΅Ρ‚ΠΊΠΈ ΠΈ Π²Π·ΡΡ‚ΡŒ ΠΈΠ· Π½Π΅Π³ΠΎ Ρ…Π΅Ρˆ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Git Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ вашСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° (ΠΊΠ°ΠΊ слСпок этого ΠΊΠΎΠΌΠΌΠΈΡ‚Π°). Git ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊ Ρ‚Π°ΠΊΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ – ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ.

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

Π“Π»Π°Π²Π° 14. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ head

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ – это Ρ‚Π°ΠΊΠΈΠ΅ ΡˆΡ‚ΡƒΠΊΠΈ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ имя, ΠΈ ΠΎΠ½ΠΈ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ (хранят Π΅Π³ΠΎ Ρ…Π΅Ρˆ). ΠœΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ нСобходимости Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ, Git создаёт ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π΅Π΅ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈ Π΄Π²ΠΈΠ³Π°Π΅Ρ‚ Π΅Π³ΠΎ Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅.

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π²Π΅Ρ‚ΠΎΠΊ. Π•ΡΡ‚ΡŒ особый ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ head. Он ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выступаСт состояниСм вашСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Поняли идСю? Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π΄Π²Π΅ Π²Π΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдставлСны двумя указатСлями: master ΠΈ test. ΠœΡ‹ находимся Π² Π²Π΅Ρ‚ΠΊΠ΅ master ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ нашСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ слСпку ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Β«4Β». ΠžΡ‚ΠΊΡƒΠ΄Π° ΠΌΡ‹ это Π·Π½Π°Π΅ΠΌ? Из Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ head ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ Β«4Β». Π’ΠΎΡ‡Π½Π΅Π΅, ΠΎΠ½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ master, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ Β«4Β». ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ Β«4Β»? Π—Π°Ρ‡Π΅ΠΌ Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΠΈΠ½Ρ‚ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ? Π’Π°ΠΊ Git ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сСйчас ΠΌΡ‹ находимся Π² Π²Π΅Ρ‚ΠΊΠ΅ master.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ head Π½Π° любой ΠΊΠΎΠΌΠΌΠΈΡ‚ – для этого Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° checkout. Вспомним, Ρ‡Ρ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ head, Π² Ρ‚Π°ΠΊΠΎΠΌ состоянии ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ (это свойство указатСля head). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ пСрСставляя ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ head Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΌΡ‹ Ρ‚Π΅ΠΌ самым заставим Git ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ нашСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒΡΡ Π½Π° ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ‚Π°ΠΌ всё Π±Ρ‹Π»ΠΎ. А ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π°Π·Π°Π΄ ΠΊ послСднСму ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ Π²Π΅Ρ‚ΠΊΠΈ master (checkout master). Если ΠΆΠ΅ сдСлаСм checkout test (см. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ), Ρ‚ΠΎ head Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ test, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π²Π΅Ρ‚ΠΊΠΈ test. Π€Π°ΠΉΠ»Ρ‹ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° слСпок Β«6Β». Π’Π°ΠΊ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ test.

ΠŸΠΎΠ΄Ρ‹Ρ‚ΠΎΠΆΠΈΠΌ. ΠŸΠ΅Ρ€Π΅ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° особого указатСля head ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° слСпок этого ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Но Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° head ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠΈ, Git считаСт, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ находимся Π² этой Π²Π΅Ρ‚ΠΊΠ΅.

А Ρ‡Ρ‚ΠΎ происходит, Ссли head ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ (Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΅Π³ΠΎ Ρ…Π΅Ρˆ)? Π­Ρ‚ΠΎ состояниС называСтся detached head. Π’ Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ выглядСли Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ.

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (ΠΊΠ°ΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ) выполняСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ checkout.

Π“Π»Π°Π²Π° 15. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ origin/master

Π Π°Π· ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ (origin) Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ наш, Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‚Π°ΠΌ Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ свои ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π²Π΅Ρ‚ΠΎΠΊ? Π’Π΅Ρ€Π½ΠΎ. НапримСр, Π΅ΡΡ‚ΡŒ свой ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ master, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся Π½Π° самый свСТий ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² этой Π²Π΅Ρ‚ΠΊΠ΅.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π·Π°Π±ΠΈΡ€Π°Π΅ΠΌ свСТиС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· origin ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ pull, Ρ‚ΠΎ вмСстС с ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ ΠΊΠΎΠΏΠΈΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΡ‚Ρ‚ΡƒΠ΄Π°. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ наш ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ master ΠΈ Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ скачался с origin, Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… отобраТаСтся Ρƒ нас, ΠΊΠ°ΠΊ origin/master. НуТно ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ origin/master Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС указатСля master Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, это лишь Π΅Π³ΠΎ копия Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ fetch ΠΈΠ»ΠΈ pull.

master ΠΈ origin/master ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Π‘Ρ‚Π°Π½Π΅Ρ‚ понятнСС, Ссли ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ

Π—Π΄Π΅ΡΡŒ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ситуация, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π·Π°Π±Ρ€Π°Π»ΠΈ свСТиС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ (ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ pull), сдСлали Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π½ΠΎ Π΅Ρ‰Ρ‘ Π½Π΅ сдСлали push. Π’ ΠΈΡ‚ΠΎΠ³Π΅ наш Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ master ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚. А origin/master – это послСднСС извСстноС Π½Π°ΠΌ состояниС указатСля ΠΈΠ· ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ рСпозитория. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ½ ΠΈ «отстал».

ПослС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ push Π΄Π²Π° Π²Π΅Ρ€Ρ…Π½ΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΡƒΠΉΠ΄ΡƒΡ‚ Π² origin ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Ρ‡Ρ‚ΠΎ origin/master подвинСтся Π²Π²Π΅Ρ€Ρ… ΠΈ Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° наш послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠ°ΠΊ ΠΈ master.

А ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ origin/master Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ Π²Ρ‹ΡˆΠ΅, Π° master Π½ΠΈΠΆΠ΅? ΠœΠΎΠΆΠ΅Ρ‚. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это получаСтся. Команда pull Π·Π°Π±ΠΈΡ€Π°Π΅Ρ‚ свСТиС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ сразу ΠΆΠ΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΈΡ… Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Π‘Ρ€Π°Π·Ρƒ послС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pull ΠΎΠ±Π° указатСля origin/master ΠΈ master Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚. Но Π΅ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΊΠΎΠΌΠ°Π½Π΄Π° fetch. Она, ΠΊΠ°ΠΊ ΠΈ pull, скачиваСт послСдниС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· origin, Π½ΠΎ Π½Π΅ торопится ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. ГрафичСски это выглядит Ρ‚Π°ΠΊ (Ссли Ρƒ вас Π½Π΅Ρ‚ Π½Π΅Π·Π°ΠΏΡƒΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²):

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ

Π”ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ fetch ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ master ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π» Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ Β«3Β» ΠΈ это Π±Ρ‹Π» послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² нашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. ПослС fetch ΡΠΊΠ°Ρ‡Π°Π»ΠΈΡΡŒ Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Β«4Β» ΠΈ Β«5Β». Π’ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ master, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π» Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ Β«5Β». Π­Ρ‚ΠΎΡ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ скачался Π½Π°ΠΌ вмСстС с ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ origin/master, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° Β«5Β». Всё Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ.

Π—Π°Ρ‡Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ fetch? НапримСр, Π²Ρ‹ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΌΠ΅Π½ΡΡ‚ΡŒ состояниС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π° просто Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ³Π»ΡΠ΄Π΅Ρ‚ΡŒ, Ρ‡Π΅Π³ΠΎ Ρ‚Π°ΠΌ Π½Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΠ»ΠΈ ваши ΠΊΠΎΠ»Π»Π΅Π³ΠΈ? Π’Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ fetch ΠΈ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Когда Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹, Π΄Π΅Π»Π°Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ merge. Она ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ скачанныС Ρ€Π°Π½Π΅Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² этом простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρƒ вас Π½Π΅ Π±Ρ‹Π»ΠΎ Π½Π΅Π·Π°ΠΏΡƒΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ merge ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ придётся. Она просто ΠΏΠΎΠ΄Π²ΠΈΠ½Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ master ΠΈ head – Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ Β«5Β». Как ΠΈ origin/master.

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

Π’ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ части ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΌΡ‹ расскаТСм ΠΎ Ρ‚ΠΎΠΌ, ΠΎΡ‚ΠΊΡƒΠ΄Π° взялась Π²Π΅Ρ‚ΠΊΠ°, ΠΏΠΎΡ‡Π΅ΠΌΡƒ push Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ rebase. И, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΠΎΠ΄Π²Π΅Π΄Π΅ΠΌ ΠΈΡ‚ΠΎΠ³ΠΈ.

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

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

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