πŸ”€ Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git merge: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³ΠΈΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git merge, слСдуйтС этим шагам:

  1. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² Π²Π΅Ρ‚ΠΊΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ»ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.
  2. ЗапуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git merge <имя Π²Π΅Ρ‚ΠΊΠΈ>, Π³Π΄Π΅ <имя Π²Π΅Ρ‚ΠΊΠΈ> - это Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ»ΠΈΡ‚ΡŒ.
  3. Git автоматичСски Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ слияниС Π²Π΅Ρ‚ΠΎΠΊ, объСдиняя измСнСния ΠΈΠ· Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ.
  4. Если Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ измСнСния.
  5. ПослС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² запуститС git add для ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ….
  6. ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚Π΅ слияниС, запустив git commit.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Git Merge - Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для объСдинСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

Git - ΠΎΠ΄Π½Π° ΠΈΠ· самых популярных систСм контроля вСрсий, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ. Когда нСсколько Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΎΠ½ΠΈ часто вносят измСнСния Π² Ρ„Π°ΠΉΠ»Ρ‹, ΠΈ Π½Π° git merge вступаСт сцСна.

Git merge - это ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ измСнСния ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ нСсколько Π²Π΅Ρ‚ΠΎΠΊ, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ измСнСния, внСсСнныС Π² ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ‚ΠΊΡƒ, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

ОсновноС использованиС git merge:

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ послСдниС измСнСния


$ git checkout ваша_Π²Π΅Ρ‚ΠΊΠ°
$ git pull origin ваша_Π²Π΅Ρ‚ΠΊΠ°

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git merge, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ послСдниС обновлСния с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ объСдинСнии.

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ для объСдинСния

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ измСнСния.


$ git checkout цСлСвая_Π²Π΅Ρ‚ΠΊΠ°

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ git merge

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git merge, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ измСнСния ΠΈΠ· вашСй исходной Π²Π΅Ρ‚ΠΊΠΈ Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.


$ git merge ваша_Π²Π΅Ρ‚ΠΊΠ°

ПослС выполнСния этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Git автоматичСски ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ ΠΈ зафиксируСт измСнСния ΠΈΠ· вашСй исходной Π²Π΅Ρ‚ΠΊΠΈ Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅.

Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹

Иногда ΠΏΡ€ΠΈ объСдинСнии Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, ΠΊΠΎΠ³Π΄Π° Git Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ автоматичСски ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ измСнСния. ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ строки ΠΊΠΎΠ΄Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π² ΠΎΠ±Π΅ΠΈΡ… Π²Π΅Ρ‚ΠΊΠ°Ρ….

Когда Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, Git ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ Π½Π° Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΠ΅ части ΠΊΠΎΠ΄Π°. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния ΠΈΠ· ΠΎΠ±Π΅ΠΈΡ… Π²Π΅Ρ‚ΠΎΠΊ.

Π—Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚Π΅ измСнСния

ПослС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΡŒΡ‚Π΅ измСнСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ процСсс объСдинСния.


$ git add ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΠΉ_Ρ„Π°ΠΉΠ»
$ git commit -m "ОбъСдинСниС измСнСний"

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ваши измСнСния ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ с Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Допустим, Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Π²Π΅Ρ‚ΠΊΠΈ: "feature" ΠΈ "main". Π’Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π² Π²Π΅Ρ‚ΠΊΠ΅ "feature", внСсли измСнСния Π² Ρ„Π°ΠΉΠ» "script.py" ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ эти измСнСния с Π²Π΅Ρ‚ΠΊΠΎΠΉ "main". Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ:

  1. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ послСдниС измСнСния Π²Π΅Ρ‚ΠΊΠΈ "feature".
  2. 
    $ git checkout feature
    $ git pull origin feature
    
  3. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ "main".
  4. 
    $ git checkout main
    
  5. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ git merge для объСдинСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
  6. 
    $ git merge feature
    

Если Π²ΠΎ врСмя объСдинСния Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, Git ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ измСнСния ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ ΠΈΡ…:


$ git add script.py
$ git commit -m "ОбъСдинСниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ feature Π² Π²Π΅Ρ‚ΠΊΡƒ main"

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ваши измСнСния ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ с Π²Π΅Ρ‚ΠΊΠΎΠΉ "main"!

Git merge - мощная ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ совмСстно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ измСнСния. ΠŸΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ этой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π² своСй Ρ€Π°Π±ΠΎΡ‚Π΅, слСдуя ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅ шагам, ΠΈ Ρƒ вас Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с объСдинСниСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Git.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

GIT: Merge ΠΈΠ»ΠΈ Rebase? Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°?

7.1 Git - БлияниС - "Π˜ΡΡ‚ΠΈΠ½Π½ΠΎΠ΅" слияниС ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π² git merge

Git MERGE vs REBASE. ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ простым языком

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”₯Как Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· консоли git bash? 5 простых ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π°!

πŸ”Ž Как ΡƒΠ·Π½Π°Ρ‚ΡŒ имя рСпозитория Π² git? ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты ΠΈ инструкция

πŸ”€ Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git merge: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³ΠΈΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€Π°Ρ„ git: понятный Π³Π°ΠΉΠ΄