π ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ merge Π² git: ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΠ²Π΅ΡΡ ΠΈ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ
Π§ΡΠΎΠ±Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π² Git, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git merge
.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
git branch feature # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ "feature"
git checkout feature # ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²Π΅ΡΠΊΡ "feature"
git merge main # Π‘Π»ΠΈΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Π²Π΅ΡΠΊΠΈ "main" Π² ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ Git Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ. ΠΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ, Git ΡΠΎΠΎΠ±ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΈΡ .
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΡΠΈΠ²Π΅Ρ ΡΡΡΠ΄Π΅Π½Ρ!
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ (merge) Π² Git. Π‘Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π²Π°ΠΆΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ Git, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Ρ Π΄ΡΡΠ³ΠΎΠΉ. ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΠΎΡΠ½ΠΎΠ² ΠΈ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π²ΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ.
1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π½Π°ΡΠ°ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅, Π²Π°ΠΆΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠΈ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ ΡΠ°ΠΊΠΎΠΉ Π²Π΅ΡΠΊΠΈ, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git branch new-branch
ΠΠ΄Π΅ΡΡ "new-branch" - ΠΈΠΌΡ Π²Π°ΡΠ΅ΠΉ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π΅ Π²Π°ΠΌ ΠΈΠΌΡ.
2. ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ Π½Π° Π½Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git checkout new-branch
3. Π‘Π»ΠΈΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠΈ
Π’Π΅ΠΏΠ΅ΡΡ, Π½Π°Ρ ΠΎΠ΄ΡΡΡ Π½Π° Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠ΅, Π²Ρ Π³ΠΎΡΠΎΠ²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠΈ. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ "old-branch". ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git merge old-branch
Git ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· "old-branch" Ρ Π²Π°ΡΠ΅ΠΉ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΎΠΉ. ΠΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ (merge conflicts), Git ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΡΡ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΡΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ, ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ°ΡΡΠΊΠΈ ΠΊΠΎΠ΄Π°.
4. Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΡΠ»ΠΈΡΠ½ΠΈΡ
ΠΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΊΠΎΠ΄Π° ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΠΏΡΡΠ΅ΠΌ Π²ΡΠ±ΠΎΡΠ° Π½ΡΠΆΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΠΎΠ±ΠΎΠΈΡ Π²Π΅ΡΠΎΠΊ. ΠΠΎΡΠ»Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git add .
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΠΈΠ½Π΄Π΅ΠΊΡ, ΡΡΠΎΠ±Ρ Git Π·Π½Π°Π», ΡΡΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π±ΡΠ»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ.
git commit -m "Resolve merge conflicts"
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎΡΠ»Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΡΠ»ΠΈΡΠ½ΠΈΡ.
5. ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
ΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΡΡΠ°Π»ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
git push origin new-branch
ΠΠ΄Π΅ΡΡ "origin" - ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π²ΡΠ±ΡΠ°Π»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ.
6. ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ
ΠΠΎΡΠ»Π΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΎ! ΠΠ°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠ΅.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Git ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠΎΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΠΎΠΊ. Π‘Π»Π΅Π΄ΡΡ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌ ΡΠ°Π³Π°ΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ»ΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Git ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π²Π°ΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
Π£ΡΠΏΠ΅Ρ ΠΎΠ² Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ Git ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΠΈ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ!