git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

Git Rebase: руководство ΠΏΠΎ использованию

Rebase β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡƒΡ… способов ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ измСнСния, сдСланныС Π² ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ. ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ git ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ видят смысла ΠΎΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ измСнСния, ΠΊΠΎΠ³Π΄Π° ΡƒΠΆΠ΅ ΠΈ Ρ‚Π°ΠΊ прСкрасно Π²Π»Π°Π΄Π΅ΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ merge. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π» ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒ использования rebase.

ВСория

Π˜Ρ‚Π°ΠΊ, освСТим тСорСтичСскиС знания ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ rebase. Для Π½Π°Ρ‡Π°Π»Π° Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ β€” Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Π²Π΅Ρ‚ΠΊΠΈ β€” master ΠΈ feature, ΠΎΠ±Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅, feature Π±Ρ‹Π»Π° создана ΠΎΡ‚ master Π² состоянии A ΠΈ содСрТит Π² сСбС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ C, D ΠΈ E. Π’ Π²Π΅Ρ‚ΠΊΡƒ master послС отдСлСния ΠΎΡ‚ Π½Π΅Π΅ Π²Π΅Ρ‚ΠΊΠΈ feature Π±Ρ‹Π» сдСлан 1 ΠΊΠΎΠΌΠΌΠΈΡ‚ B.

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

ПослС примСнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ rebase master Π² Π²Π΅Ρ‚ΠΊΠ΅ feature, Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ C’, D’ ΠΈ E’ β€” Π½Π΅ Ρ€Π°Π²Π½Ρ‹ C, D ΠΈ E, ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ…Π΅ΡˆΠΈ, Π½ΠΎ измСнСния (Π΄Π΅Π»ΡŒΡ‚Ρ‹), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ Π² сСбС нСсут, Π² ΠΈΠ΄Π΅Π°Π»Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅. ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ… обусловлСно Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π±Π°Π·Ρƒ (Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС β€” A, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ β€” B), отличия Π² Π΄Π΅Π»ΡŒΡ‚Π°Ρ…, Ссли ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ, обусловлСны Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π½Ρ‹Ρ… ситуаций, Π²ΠΎΠ·Π½ΠΈΠΊΡˆΠΈΡ… ΠΏΡ€ΠΈ rebase. Об этом Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Π΄Π°Π»Π΅Π΅.

Π’Π°ΠΊΠΎΠ΅ состояниС ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ прСимущСство ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ, ΠΏΡ€ΠΈ слиянии Π²Π΅Ρ‚ΠΊΠΈ feature Π² master Π²Π΅Ρ‚ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объСдинСна ΠΏΠΎ fast-forward, Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ΄ Π² Π²Π΅Ρ‚ΠΊΠ΅ feature Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ измСнСния сдСланныС Π² Π²Π΅Ρ‚ΠΊΠ΅ master Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ B.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ rebase-Π° Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ разбСрСмся с ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠΎΠΉ этого процСсса, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Ρ€Π΅Π²ΠΎ 1 ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»ΠΎΡΡŒ Π² Π΄Π΅Ρ€Π΅Π²ΠΎ 2?

Напомню, ΠΏΠ΅Ρ€Π΅Π΄ rebase Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄Ρ‚Π΅ΡΡŒ Π² Π²Π΅Ρ‚ΠΊΠ΅ feature, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ваш HEAD смотрит Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ feature, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ смотрит Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ E. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π²Π΅Ρ‚ΠΊΠΈ master Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚:

Для Π½Π°Ρ‡Π°Π»Π° git Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ β€” ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ этих Π΄Π²ΡƒΡ… состояний. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС это ΠΊΠΎΠΌΠΌΠΈΡ‚ A. Π”Π°Π»Π΅Π΅ двигаясь Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ вашСго Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ HEAD git вычисляСт Ρ€Π°Π·Π½ΠΈΡ†Ρƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€Ρ‹ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ шагС ΠΌΠ΅ΠΆΠ΄Ρƒ A ΠΈ Π‘, Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π΅ Ξ”AC. Π­Ρ‚Π° Π΄Π΅Π»ΡŒΡ‚Π° примСняСтся ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π²Π΅Ρ‚ΠΊΠΈ master. Если ΠΏΡ€ΠΈ этом Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π½ΠΎΠ΅ состояниС, создаСтся ΠΊΠΎΠΌΠΌΠΈΡ‚ C’, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ C’ = B + Ξ”AC. Π’Π΅Ρ‚ΠΊΠΈ master ΠΈ feature ΠΏΡ€ΠΈ этом Π½Π΅ ΡΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ, HEAD пСрСмСщаСтся Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ (C’), приводя ваш Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ состояниС Β«ΠΎΡ‚Π΄Π΅Π»Π΅Π½ΠΎΠΉ Π³ΠΎΠ»ΠΎΠ²Ρ‹Β» (detached HEAD).

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

УспСшно создав ΠΊΠΎΠΌΠΌΠΈΡ‚ C’, git ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ пСрСносу ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ β€” Ξ”CD. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ этих ΠΈΠ·ΠΌΠ΅Π½Π½ΠΈΠΉ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ C’ Π²ΠΎΠ·Π½ΠΈΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚. ΠŸΡ€ΠΎΡ†Π΅ΡΡ rebase останавливаСтся (ΠΈΠΌΠ΅Π½Π½ΠΎ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π½Π°Π±Ρ€Π°Π² git status Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² состоянии detached HEAD). ИзмСнСния, внСсСнныС Ξ”CD находятся Π² вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΈ (ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π½Ρ‹Ρ…) ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ (ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€ΠΎΠΌ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π° stage-Π·ΠΎΠ½Π°):

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

Π”Π°Π»Π΅Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

1. ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ процСсс rebase Π½Π°Π±Ρ€Π°Π² Π² консоли

ΠŸΡ€ΠΈ этом ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ HEAD, Π±ΡƒΠ΄Π΅Ρ‚ пСрСнСсСн ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ feature, Π° ΡƒΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ повиснут Π² Π²ΠΎΠ·Π΄ΡƒΡ…Π΅ (Π½Π° Π½ΠΈΡ… Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ) ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ вскорС ΡƒΠ΄Π°Π»Π΅Π½Ρ‹.

ΠŸΡ€ΠΈ этом, Ссли всС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹, Π±ΡƒΠ΄Π΅Ρ‚ создан ΠΊΠΎΠΌΠΌΠΈΡ‚ D’ ΠΈ rebase ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ послСднСму ΡˆΠ°Π³Ρƒ.

ПослС примСнСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ξ”DE Π±ΡƒΠ΄Π΅Ρ‚ создан послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ E’, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π²Π΅Ρ‚ΠΊΠΈ feature Π±ΡƒΠ΄Π΅Ρ‚ установлСн Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ E’, Π° HEAD станСт ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ feature β€” Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² состоянии Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΌ рисункС, rebase ΠΎΠΊΠΎΠ½Ρ‡Π΅Π½. Π‘Ρ‚Π°Ρ€Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ C, D ΠΈ E Π²Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹.

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

ΠŸΡ€ΠΈ этом ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, созданныС Π² процСссС rebase-Π°, Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ ΠΎΠ± ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ Π°Π²Ρ‚ΠΎΡ€Π΅ ΠΈ Π΄Π°Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (Author), Ρ‚Π°ΠΊ ΠΈ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅, сдСлавшСм rebase (Commiter):

Π‘ нСбСс Π½Π° зСмлю β€” rebase Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… условиях

На самом Π΄Π΅Π»Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π΅ с двумя Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ, Π° с Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ Π² самом простом случаС: master, origin/master, feature ΠΈ origin/feature. ΠŸΡ€ΠΈ этом rebase Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΠΊΠ°ΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠΎΠΉ ΠΈ Π΅Π΅ origin-ΠΎΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ feature ΠΈ origin/feature, Ρ‚Π°ΠΊ ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ feature ΠΈ master.

Rebase Π²Π΅Ρ‚ΠΊΠΈ с origin-ΠΎΠΌ

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с rebase, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ всСго Π½Π°Ρ‡Π°Ρ‚ΡŒ с Ρ€Π΅Π±Π΅ΠΉΠ·Π° своих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π²Π΅Ρ‚ΠΊΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΅Π΅ ΠΊΠΎΠΏΠΈΠΈ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΈ. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ добавляСтС ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΈ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΈ добавляСтся ΠΊΠΎΠΌΠΌΠΈΡ‚, для объСдинСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ merge. Выглядит это ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

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

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

Как ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π²Π΅Ρ‚ΠΊΠΎΠΉ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ rebase, с ΠΊΠΎΠ»Π»Π΅Π³ΠΎΠΉ

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

Π’ΡƒΡ‚ всС просто, Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ Π² консоли ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Force-Ρ€Π΅ΠΆΠΈΠΌ просто ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π²Π΅Ρ‚ΠΊΠΈ feature Π½Π° origin ΠΈ насильно устанавливаСт ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π²Π΅Ρ‚ΠΊΠΈ Π½Π° Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΈ ваш Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ.

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹! Если Π²Ρ‹ Π·Π°Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π²Π΅Ρ‚ΠΊΠΈ, Ρ‚ΠΎ force-push Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ для всСх Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π». ΠŸΡ€ΠΈ этом Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π² Π½Π΅Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии. Π’ΠΎ Π΅ΡΡ‚ΡŒ измСнСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π½Π΅ успСли Π·Π°Ρ‚ΡΠ½ΡƒΡ‚ΡŒ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ Π² origin-Π΅. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, сами ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ β€” сбросятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π²Π΅Ρ‚ΠΊΠΈ. Π­Ρ‚Π° ситуация ΠΏΠΎΠΏΡ€Π°Π²ΠΈΠΌΠ° β€” достаточно для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π½Π°ΠΉΡ‚ΠΈ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ послСдним ΠΏΡƒΡˆΠΈΠ» измСнСния Π² Π½Π΅Π΅ ΠΈΠ»ΠΈ ΡƒΠΆΠ΅ успСл ΠΈΡ… Π·Π°Π±Ρ€Π°Ρ‚ΡŒ. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ push, вновь ΠΏΠ΅Ρ€Π΅Π΄Π°Π² ΠΈΡ… Π½Π° origin. Но вся эта ΠΌΠΎΡ€ΠΎΠΊΠ° Π²Π°ΠΌ Π½ΠΈ ΠΊ Ρ‡Π΅ΠΌΡƒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ просто Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹.

РСинтСграция тСматичСской Π²Π΅Ρ‚ΠΊΠΈ Π² master

ΠœΡ‹ рассмотрСли всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π² стилС rebase. ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π² Π²Π΅Ρ‚ΠΊΡƒ master ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ git merge feature. Π’Π΅Ρ‚ΠΊΠ°, подготовлСнная rebase-ΠΎΠΌ Π²ΠΎΠ»ΡŒΠ΅Ρ‚ΡΡ Π² master ΠΏΠΎ fast-forward, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ просто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ Π²ΠΏΠ΅Ρ€Π΅Π΄.

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, Π½Π° ΠΌΠΎΠΉ взгляд, merge-ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ ΠΈ нСсут Π² сСбС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π΅ объСдинСния Π²Π΅Ρ‚ΠΎΠΊ. Π­Ρ‚ΠΎΡ‚ Π³Ρ€Π°Ρ„ выглядит ΠΊΠ°ΠΊ ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΠΎ такая структура Π²ΠΏΠΎΠ»Π½Π΅ Ρ€Π΅Π°Π»ΡŒΠ½Π° ΠΏΡ€ΠΈ соблюдСнии Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… простых ΠΏΡ€Π°Π²ΠΈΠ» всСми Ρ‡Π»Π΅Π½Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

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

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ Π³Ρ€Π°Ρ„Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° Π½Π° порядок ΠΏΡ€ΠΈ соблюдСнии Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… простых ΠΏΡ€Π°Π²ΠΈΠ», хотя ΠΎΠ½ΠΈ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ сдСлано ΠΎΠ΄Π½ΠΎ Π΄ΠΎΠΏΡƒΡ‰Π΅Π½ΠΈΠ΅. ВсС это Π²Π΅Ρ€Π½ΠΎ ΠΏΡ€ΠΈ простой ΠΌΠΎΠ΄Π΅Π»ΠΈ вСтвлСния β€” Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° главная Π²Π΅Ρ‚ΠΊΠ° master ΠΈ нСсколько тСматичСских, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Π½Π΅Π΅. Когда ΠΎΡ‚ тСматичСской Π²Π΅Ρ‚ΠΊΠΈ создаСтся другая тСматичСская Π²Π΅Ρ‚ΠΊΠ°, Π΅ΡΡ‚ΡŒ свои Π½ΡŽΠ°Π½ΡΡ‹ ΠΏΡ€ΠΈ rebase-Π΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΉ ΠΈ Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ. О Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Ρ‚ΠΎΠΌ самом ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ руководствС.

Иногда споры, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π»ΡƒΡ‡ΡˆΠ΅ merge ΠΈΠ»ΠΈ rebase доходят Π΄ΠΎ Ρ…ΠΎΠ»ΠΈΠ²Π°Ρ€Π°. ΠžΡ‚ сСбя ΠΌΠΎΠ³Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС Π²Ρ‹Π±ΠΎΡ€ Π·Π° Π²Π°ΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ этот Π²Ρ‹Π±ΠΎΡ€ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΠΈΠΊΡ‚ΠΎΠ²Π°Π½ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ владСния Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ инструмСнтом. ΠžΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° для вас Π½Π΅ составит Ρ‚Ρ€ΡƒΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Π² Ρ‚ΠΎΠΌ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ стилС. Π― Π½Π΅ Π°Π³ΠΈΡ‚ΠΈΡ€ΡƒΡŽ Π·Π° повсСмСстноС использованиС rebase-Π°, Π° просто объясняю ΠΊΠ°ΠΊ ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ. НадСюсь, это ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡΠ½ΡΡ‚ΡŒ вопросы, связанныС с ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ rebase ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π² Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅.

PS. Π₯ΠΎΡ‡Ρƒ ΠΏΠΎΠ±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΡ‚ΡŒ своих ΠΊΠΎΠ»Π»Π΅Π³, ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ бСсСды с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ ΠΌΠ½Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅, ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ Π² основу этой ΡΡ‚Π°Ρ‚ΡŒΠΈ.

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

git rebase

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ git rebase?

ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” это процСсс пСрСмСщСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ ΠΈΠ»ΠΈ ΠΈΡ… объСдинСниС. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ пСрСбазирования ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ всСго ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² контСкстС создания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ. Π’ ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… процСсс ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния содСрТимого ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” это Π·Π°ΠΌΠ΅Π½Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² основании Π²Π΅Ρ‚ΠΊΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ создаСтся Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° Π½ΠΎΠ²ΠΎΠ΅ Π½Π°Ρ‡Π°Π»ΠΎ. Π’ процСссС этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Git создаСт Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ примСняСт ΠΈΡ… ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ основанию, поэтому Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Π΅Ρ‚ΠΊΠ° всСгда состоит ΠΈΠ· ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

ИспользованиС

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

Π£Π·Π½Π°ΠΉΡ‚Π΅ большС ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… git log ΠΈ git bisect Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… страницах.

Π’Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ main ΠΌΠΎΠΆΠ½ΠΎ двумя способами: прямым слияниСм ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ слияниСм. ΠŸΠ΅Ρ€Π²Π°Ρ опСрация выполняСт трСхстороннСС слияниС ΠΈ создаСт ΠΊΠΎΠΌΠΌΠΈΡ‚ слияния, Π° вторая обСспСчиваСт ускорСнноС слияниС ΠΈ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ. На ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ схСмС ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ main обСспСчиваСт ускорСнноС слияниС.

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

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

НС выполняйтС ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΉ истории

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

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ стандартного ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git rebase

Π’ стандартном Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° git rebase автоматичСски Π±Π΅Ρ€Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ примСняСт ΠΈΡ… Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ.

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

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ пСрСбазирования

Как описано Π½Π° страницС ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΠ΅ истории, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ пСрСбазирования ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², зафиксированныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ сообщСний. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ добавлСния ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git rebase Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ.

ΠžΠ±Π·ΠΎΡ€

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

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ слияниСм с основной Π±Π°Π·ΠΎΠΉ ΠΊΠΎΠ΄Π°. Они ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΊΠ»Π΅ΠΈΡ‚ΡŒ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ элСмСнты ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ навСсти порядок Π² Π²Π΅Ρ‚ΠΊΠ΅, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ пСрСнос Π² Β«ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽΒ» ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π‘ΠΎ стороны Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ лишь нСсколько ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

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

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ

ΠžΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ прСдупрСТдСния ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹.

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности пСрСбазирования

Π’Π΅Ρ‚ΠΊΠ° featureB основана Π½Π° featureA. ΠŸΡ€ΠΈ этом ΠΌΡ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ° featureB Π½Π΅ зависит Π½ΠΈ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ измСнСния Π² Π²Π΅Ρ‚ΠΊΠ΅ featureA, поэтому ΠΎΠ½Π° ΠΌΠΎΠ³Π»Π° Π±Ρ‹ ΠΎΡ‚Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΡ‚ Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ main.

ΠžΠΏΠ°ΡΠ½ΠΎΡΡ‚ΠΈ пСрСбазирования

Π‘Π°ΠΌΠ° ΠΏΠΎ сСбС ΠΊΠΎΠΌΠ°Π½Π΄Π° git rebase Π½Π΅ сопряТСна с ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΉ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ. Риск Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для пСрСзаписи истории ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ отправляСтС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π³Π΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ. Π­Ρ‚ΠΎΠ³ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ стоит, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пСрСзаписана ΠΏΡ€ΠΈ осущСствлСнии pull.

ВосстановлСниС ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ восходящСй Π²Π΅Ρ‚ΠΊΠΈ

РСзюмС

Π“ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Git?

ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с этим ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΌ руководством.

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

ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΠ΅ истории с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Git Rebase

Russian (Pусский) translation by Sergey Zhuk (you can also view the original English article)

Основной Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Git выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‡Ρƒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ сливаСтС Π΅Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ git merge Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΡ‹ΠΌ инструмСнтом для объСдинСния Π²Π΅Ρ‚ΠΎΠΊ. Однако это Π½Π΅ СдинствСнный инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Git.

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒgit rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒΠ‘Π»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ объСдинСниСм.

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒgit rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒΠ‘Π»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git rebase

НСобходимыС условия

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с основами Git. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΌΠ΅Ρ‚ΡŒ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π·Π°Π΄Π°Ρ‡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΊΠ°Ρ…, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΡΠ»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π°Π»ΠΈΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π².

1. Π‘Π΄Π²ΠΈΠ³ для получСния Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ истории

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя расходящаяся история ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Рассмотрим Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ основная Π²Π΅Ρ‚ΠΊΠ° ΡƒΡˆΠ»Π° Π²ΠΏΠ΅Ρ€Π΅Π΄, ΠΏΠΎΠΊΠ° Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅.

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒgit rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒgit rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

НапримСр, рассмотрим, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ слияниС вмСсто сдвига.

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒgit rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒΠ‘Π»ΠΈΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², находящихся Π²Ρ‹ΡˆΠ΅.

Π­Ρ‚ΠΎ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈ слиянии ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. Π‘Π΅Π· использования сдвига, слияниС Π²Π΅Ρ‚ΠΊΠΈ feature Π² Π²Π΅Ρ‚ΠΊΡƒ master Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° слияния. Π₯отя это ΠΈ каТСтся Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ (ΠΎΠ½ прСдставляСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ), Π² ΠΈΡ‚ΠΎΠ³Π΅ история Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½Π° ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΉ:

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒgit rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒΠ‘Π»ΠΈΡΠ½ΠΈΠ΅ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ merge

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒgit rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒΠ‘Π΄Π²ΠΈΠ³ ΠΏΠ΅Ρ€Π΅Π΄ слияниСм

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

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒgit rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

Команда git merge позволяСт Π²Π°ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ всС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π² ΠΊΠΎΠ½Ρ†Π΅ слияния, Ρ‡Ρ‚ΠΎ являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· основных Ρ†Π΅Π»Π΅ΠΉ создания ΠΊΠΎΠΌΠΌΠΈΡ‚Π° слияния. Однако всС это происходит Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΏΡ€ΠΈ использовании сдвига. ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли git rebase Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, Ρ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° сдвига приостанавливаСтся ΠΈ выводится сообщСниС с ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ:

Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Π²ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит история ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΠ³Π΄Π° git rebase ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚:

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒgit rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

Для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° слСдуСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ (Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это readme.txt), Π½Π°ΠΉΡ‚ΠΈ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ строки, ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ внСсти Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния. Π—Π°Ρ‚Π΅ΠΌ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ Git, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½, зафиксировав измСнСния Π² Ρ„Π°ΠΉΠ»Π΅:

ΠžΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½Ρ‹, Ссли снова Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, Ρ‚ΠΎ слСдуСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ процСсс ΠΈΡ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

2. Π‘Π΄Π²ΠΈΠ³ для очищСния ΠΎΡ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Π­Ρ‚ΠΎΡ‚ список ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Π²Π΅Ρ‚ΠΊΠ° feature Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ послС пСрСмСщСния. КаТдая строчка прСдставлСнная ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ pick ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ…ΡΡˆΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, опрСдСляСт Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ с ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ Π²ΠΎ врСмя сдвига. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ пСрСчислСны ΠΎΡ‚ самого старого ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ. ИзмСняя этот список, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ историСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒgit rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒΠ‘ΠΆΠΈΠΌΠ°Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ сдвига.

3. ΠžΠΏΠ°ΡΠ½ΠΎΡΡ‚ΠΈ сдвига

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒgit rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

Когда Π²Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, пСрСписываниС истории Π½Π΅ являСтся ΠΎΡ‡Π΅Π½ΡŒ сущСствСнным. Однако, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² срСдС совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ опасным. Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Π²Π΅Ρ‚ΠΊΠ΅ master ), Ρ‚ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ»ΠΈΠ²Π°Ρ‚ΡŒ сСбС ваши измСнСния, ΠΈΡ… собствСнныС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ исчСзнут. Π§Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ нСприятных Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ, послС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… тяТСло Π±ΡƒΠ΄Π΅Ρ‚ всС Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ.

Имя это Π² Π²ΠΈΠ΄Ρƒ, Π²Π°ΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ слСдуСт Π΄Π΅Π»Π°Ρ‚ΡŒ сдвиг ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π·Π°Π»ΠΈΡ‚Ρ‹ Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΡ‚ΠΎ ΠΈΡ… сСйчас Π² своСй Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚.

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

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

ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΠ΅ истории с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Git Rebase

Π’ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ процСссС Git Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Ρ‚Π΅ΠΌ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚Π΅ Π΅Π΅ с производствСнной Π²Π΅Ρ‚ΠΊΠΎΠΉ послС Π΅Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ git merge Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΡ‹ΠΌ инструмСнтом для объСдинСния Π²Π΅Ρ‚ΠΎΠΊ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, это Π½Π΅ СдинствСнный, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Git.

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ Π²Π΅Ρ‚Π²ΠΈ, объСдиняя ΠΈΡ…

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ с git rebase

ΠŸΡ€Π΅Π΄ΠΏΠΎΡΡ‹Π»ΠΊΠΈ

Π’ этом руководствС прСдполагаСтся, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с основными ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Git ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ процСссами совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π£ вас Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ фиксация снимков, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… вСтвях, объСдинСниС Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ / ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ Π² / ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π².

1. ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ истории

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ рассмотрим, связан с расходящСйся историСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Рассмотрим Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ваша производствСнная Π²Π΅Ρ‚Π²ΡŒ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΠ»Π°ΡΡŒ Π²ΠΏΠ΅Ρ€Π΅Π΄, ΠΏΠΎΠΊΠ° Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

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

Π­Ρ‚ΠΎ трансплантируСт Π²Π΅Ρ‚Π²ΡŒ feature ΠΎΡ‚ Π΅Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ мСстополоТСния Π΄ΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ master Π²Π΅Ρ‚ΠΊΠΈ:

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

НапримСр, рассмотрим, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π²Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ восходящиС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ слияниСм вмСсто рСбазирования:

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

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒΠ˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ восходящих ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² слияниСм

Π­Ρ‚ΠΎ ΠΆΠ΅ прСимущСство ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈ слиянии Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. Π‘Π΅Π· пСрСбазирования интСграция Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ feature Π² master Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ фиксации слияния. Π₯отя Π½Π° самом Π΄Π΅Π»Π΅ это Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ слияния (Π² Ρ‚ΠΎΠΌ смыслС, Ρ‡Ρ‚ΠΎ ΠΎΠ½ прСдставляСт Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ), итоговая история ΠΏΠΎΠ»Π½Π° Ρ€Π°Π·Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΉ:

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒΠ˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с объСдинСниСм

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ слияниСм

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

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

Команда git merge позволяСт Π²Π°ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ всС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π²Π΅Ρ‚Π²ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ слияния, Ρ‡Ρ‚ΠΎ являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· основных Ρ†Π΅Π»Π΅ΠΉ фиксации слияния. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, это Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅. ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ Π½Π° основС принятия. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли git rebase ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, ΠΎΠ½ остановит ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ rebase ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅:

Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ, Π²ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит история вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΠ³Π΄Π° git rebase сталкиваСтся с ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠΌ:

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» (readme.txt Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅), Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹Π΅ строки ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΡ… Π΄ΠΎ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Π—Π°Ρ‚Π΅ΠΌ скаТитС Git, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ ΠΏΡƒΡ‚Π΅ΠΌ размСщСния Ρ„Π°ΠΉΠ»Π°:

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

2. ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для очистки мСстных ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ΠΎΠ²

ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, содСрТащий всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² feature ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ:

Π­Ρ‚ΠΎΡ‚ листинг опрСдСляСт, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° послС пСрСбазирования. КаТдая строка прСдставляСт ΠΊΠΎΠΌΠΌΠΈΡ‚, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° pick ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ…ΡΡˆΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° опрСдСляСт, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ с Π½ΠΈΠΌ Π²ΠΎ врСмя пСрСбазирования. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ пСрСчислСны ΠΎΡ‚ самых старых Π΄ΠΎ самых послСдних. ИзмСняя этот список, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ историСй вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒΠ Π°Π·Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ 2-Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²ΠΊΠΈ

3. ΠžΠΏΠ°ΡΠ½ΠΎΡΡ‚ΠΈ пСрСбазирования

git rebase continue Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ

Когда Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, пСрСписываниС истории Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ большого значСния. Однако, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² срСдС совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹, это ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ опасным. Если Π²Ρ‹ пСрСписываСтС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² master Π²Π΅Ρ‚ΠΊΠ΅), это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ эти ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ исчСзли Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎΠΌΡƒ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ.

ИмСя это Π² Π²ΠΈΠ΄Ρƒ, Π²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ пСрСнСсСны Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Ссли Π²Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ основывал свою Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° Π½ΠΈΡ….

Π’Ρ‹Π²ΠΎΠ΄

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

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

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