π ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ rebase git: ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
Rebase Π² Git β ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ. ΠΠ½Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΌΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ rebase:
git checkout <ΡΠ΅ΠΊΡΡΠ°Ρ_Π²Π΅ΡΠΊΠ°>
git rebase <ΡΠ΅Π»Π΅Π²Π°Ρ_Π²Π΅ΡΠΊΠ°>
ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ Π²Ρ Π²Π·ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΠΈ Π²Π½Π΅ΡΠ»ΠΈ ΠΈΡ Π² ΡΠ΅ΠΊΡΡΡΡ, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΡ Π±ΡΠ»ΠΈ Π±Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄ΡΡΠ³ΠΈΠΌ.
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π°Π³ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
git rebase --interactive <ΡΠ΅Π»Π΅Π²Π°Ρ_Π²Π΅ΡΠΊΠ°>
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ Π² Ρ ΠΎΠ΄Π΅ ΡΠ΅Π±Π΅ΠΉΠ·Π° ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈΡ .
Rebase Π³ΠΈΠ±ΠΊΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ»ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΎΠ±Π·ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ rebase git
Git - ΡΡΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄Π΅. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Git, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ "rebase". Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ rebase git ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ rebase git?
Rebase - ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π² Git, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ»ΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ, rebase ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈ Π΄Π΅Π»Π°Π΅Ρ Π΅Π΅ Π±ΠΎΠ»Π΅Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ rebase git
ΠΠ»Ρ Π»ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ rebase git. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄Π²Π΅ Π²Π΅ΡΠΊΠΈ: Π²Π΅ΡΠΊΠ° "feature" ΠΈ Π²Π΅ΡΠΊΠ° "master".
git checkout feature
git rebase master
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π½Π° Π²Π΅ΡΠΊΡ "feature" ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ "rebase" Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΠΊΠΈ "master". git ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ "feature" ΠΏΠΎΠ²Π΅ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Π²Π΅ΡΠΊΠ΅ "master", ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° rebase git
Rebase git ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²:
- Π‘ΠΎΠ·Π΄Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π΅ ΠΏΡΠΎΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°.
- ΠΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ "Π»ΠΈΡΠ½ΠΈΡ " ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- Π£ΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΠΎΠΊ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ rebase git
ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ rebase git:
- Rebase ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Π° Π΄ΡΡΠ³ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ.
- ΠΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ rebase git, ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π²ΡΡΡΠ½ΡΡ.
- Rebase git ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΠ»ΠΈ Π±Π΅Π· Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Rebase git - ΡΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Git. ΠΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ rebase git Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ.