π’ Π ΠΊΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ merge ΠΈ rebase
Π ΡΡΡΠ½ΠΎΡΡΠΈ, ΠΎΠ±Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΠΎΠΊ, Π½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΎΠ½ΠΈ ΡΡΠΎ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ ΠΈ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΠΌΠΈ. ΠΠ± ΡΡΠΎΠΌ ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π½ΠΈΠΆΠ΅.
Π‘ΡΠΎΠΈΡ ΠΎΠ·Π²ΡΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ», ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π»ΠΈΡΠΎ ΠΈ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΡΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² ΡΡΠΆΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ Π²Π΅ΡΠΊΠΈ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ ΠΈ Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΡ Π² Π½Π΅ΠΉ. ΠΡΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π°Π΄ ΡΡΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡΠ΅ΡΡΠ²Π΅, ΡΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡΡΠΈΡΡ ΡΡΡ Π²Π΅ΡΠΊΡ ΡΡΠ°Π·Ρ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ (Π½ΠΎ Π»ΡΡΡΠ΅ ΡΡΠΈΠΌ Π½Π΅ ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅Π³Π°ΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ).
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ rebase ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π²Π΅ΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ Π»ΠΈΡΠ½ΠΎ. Rebase ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈ ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡ Ρ ΡΡΠΈ. ΠΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΡΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΡΡΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ, ΠΏΠΎΡΠ»Π΅ rebase Π΅ΠΌΡ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌΠΈ ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ. ΠΠΎ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΠΊΠΈ - ΡΠΎΠ»ΡΠΊΠΎ merge, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π»ΠΎΠΌΠ° Π»ΠΈΡΠ° ΠΈΠ»ΠΈ ΡΡΠΊ ΠΎΡ Π·Π°Π±ΠΎΡΠ»ΠΈΠ²ΡΡ ΠΊΠΎΠ»Π»Π΅Π³.
git merge#
ΠΠ°ΠΈΠΌΠ΅Π½Π΅Π΅ Π΄Π΅ΡΡΡΡΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²Π»ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ. ΠΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈ Π½Π΅ ΡΡΠΈΡΠ°Π΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΡΡΠΎΡΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ, Π½ΠΎ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎΠΉ. Merge Π²ΡΠ΅Π³Π΄Π° Π΄Π²ΠΈΠ³Π°Π΅ΡΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠΎ Π΅ΡΡΡ ΠΌΡ Π±Π΅ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ»ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊ Π½ΠΈΠΌ Π½ΠΎΠ²ΡΠ΅.
ΠΡ ΠΎΡΠΏΠΎΡΠΊΠΎΠ²Π°Π»ΠΈΡΡ ΠΎΡ master ΠΈ ΠΏΠΈΡΠ΅ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² ΡΠ²ΠΎΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅ feature. Π§ΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΏΠΎΡΠ²ΠΈΠ²ΡΠΈΠ΅ΡΡ Π² master, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ merge:
- ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π° ΡΠ²ΠΎΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅ -
git checkout feature - ΠΠ΅ΡΠΆΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· master Π² Π½Π°ΡΡ ΡΠΈΡΠ°-Π²Π΅ΡΠΊΡ -
git merge master - ΠΠΎΡΠ²ΠΈΡΡΡ Π½ΠΎΠ²ΡΠΉ merge commit Π² Π½Π°ΡΠ΅ΠΉ feature Π²Π΅ΡΠΊΠ΅. ΠΡΠΎ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠΎ Π΅ΡΡΡ git Π΄ΠΎΠ±Π°Π²ΠΈΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Ρ Π½ΠΎΠ²ΡΠΌ Ρ ΡΡΠ΅ΠΌ Π² Π²Π°ΡΡ ΡΠΈΡΠ°-Π²Π΅ΡΠΊΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ Π² master ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΎΡΠΏΠΎΡΠΊΠΎΠ²Π°Π»ΠΈ ΠΎΡ Π½Π΅Π³ΠΎ ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ.
master
A---B---C
\
feature D---E
git rebase#
ΠΡ "ΡΠ΅Π±Π΅ΠΉΡΠΈΠΌ" ΡΠΎ, ΠΎΡΠΊΡΠ΄Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π½Π°ΡΠ° Π²Π΅ΡΠΊΠ°. ΠΡΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠ΅Π»Π°Π΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π±ΠΎΠ»Π΅Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ.