Merge git: Π·Π°ΡΠ΅ΠΌ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ / Π₯Π°Π±Ρ
Π·Π°ΡΠ΅ΠΌ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ / Π₯Π°Π±Ρ
Π§Π°ΡΡΠΎ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΡΠ±ΠΎΡ ΠΌΠ΅ΠΆΠ΄Ρ Merge (ΡΠ»ΠΈΡΠ½ΠΈΠ΅) ΠΈ Rebase (ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅). Π ΠΡΠ³Π»Π΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ°Π·Π½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΎΠ²Π΅ΡΡΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Rebase, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π ΡΡΠ°ΡΡΠ΅ Ρ ΠΎΠ±ΡΡΡΠ½Ρ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠ΅ΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ (ΠΈΠ»ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
Git Merge ΠΈ Git Rebase ΠΏΡΠ΅ΡΠ»Π΅Π΄ΡΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΡΠ΅Π»Ρ. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ. Π₯ΠΎΡΡ ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ ΡΠ΅Π»Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°Ρ, ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π±ΠΎΡΡ ΡΠ°Π·Π½ΡΠ΅.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Π²Ρ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Rebase, Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡ Merge. Π ΡΡΠΎΠΌ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ.
Git Merge
Π‘Π»ΠΈΡΠ½ΠΈΠ΅ β ΠΎΠ±ΡΡΠ½Π°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠΎΠ·Π΄Π°Π½Ρ Π»ΠΈ Π²Π΅ΡΠΊΠΈ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΠ»ΠΈ ΠΏΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. Π‘Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π²Π΅ΡΠΊΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΈΡ Ρ ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ. Π ΡΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»Π΅Π²Π°Ρ Π²Π΅ΡΠΊΠ°. ΠΡΡΠΎΡΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π²Π΅ΡΠΎΠΊ ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΠ»ΡΡΡ:
- ΠΏΡΠΎΡΡΠΎΡΠ°;
- ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΈ Ρ ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ;
- ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²Π΅ΡΠΊΠΈ.
ΠΠΈΠ½ΡΡΡ:
- ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π° (Π·Π°Π³ΡΡΠ·Π½Π΅Π½Π°) ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²;
- ΠΎΡΠ»Π°Π΄ΠΊΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ git bisect ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅.
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ
Π‘Π»Π΅ΠΉΡΠ΅ Π²Π΅ΡΠΊΡ master Π² Π²Π΅ΡΠΊΡ feature, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ checkout ΠΈ merge.
$ git checkout feature
$ git merge master
(or)
$ git merge master featureΠΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ Β«Merge commitΒ» Π² Π²Π΅ΡΠΊΠ΅ feature, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΡΡΠΎΡΠΈΡ ΠΎΠ±Π΅ΠΈΡ Π²Π΅ΡΠΎΠΊ.
Git Rebase
Rebase β Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ. Rebase ΡΠΆΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠ΄ΠΈΠ½ Β«ΠΏΠ°ΡΡΒ». ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅Ρ ΠΏΠ°ΡΡ Π² ΡΠ΅Π»Π΅Π²ΡΡ Π²Π΅ΡΠΊΡ.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΡΡΠΎΡΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΡΡΠΎΡΠΈΡ.
ΠΠ»ΡΡΡ:
- Π£ΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΈΡΡΠΎΡΠΈΡ
- Π£ΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ
- ΠΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Π·Π°Π½ΡΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ ΠΈ Π²Π΅ΡΠΊΠ°Ρ
- ΠΡΠΈΡΠ°Π΅Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π΄Π΅Π»Π°Ρ ΠΈΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ DevOps ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠΈΠ½ΡΡΡ:
- Π‘ΠΆΠ°ΡΠΈΠ΅ ΡΠΈΡ Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ
- ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΠ°ΡΠ½ΡΠΌ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅
- ΠΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ
- ΠΠ»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌΠΈ Π²Π΅ΡΠΊΠ°ΠΌΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΡ. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π²Π΅ΡΠΎΠΊ, ΠΈΠΌΠ΅ΡΡΠΈΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΠΈΠΌΡ, ΠΊΠ°ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ, ΠΈ ΡΡΠΎ ΡΠΆΠ°ΡΠ½ΠΎ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, Π° ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΠ΅!
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ Π²Π΅ΡΠΊΡ feature Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
$ git checkout feature
$ git rebase masterΠΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ Π²ΡΡ Π²Π΅ΡΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π³Π»Π°Π²Π½ΡΡ Π²Π΅ΡΠΊΡ. ΠΡΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅.
ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΡΠΈ ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ Π² Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ. ΠΡΠΎ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ ΠΈΡΡΠΎΡΠΈΠΈ Π΄ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠΊΠΈ feature Π² master.
$ git checkout feature
$ git rebase -i masterΠΡΠΎ ΠΎΡΠΊΡΠΎΠ΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠ² Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½Ρ.
pick 22d6d7c Commit message#1
pick 44e8a9b Commit message#2
pick 79f1d2h Commit message#3ΠΡΠΎ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π²Π΅ΡΠΊΠ° ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ. Π£ΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠ°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊ Π·Π°Ρ ΠΎΡΠΈΡΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ fixup, squash, edit, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ?
Π’Π°ΠΊ ΡΡΠΎ ΠΆΠ΅ Π»ΡΡΡΠ΅? Π§ΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ ΡΠΊΡΠΏΠ΅ΡΡΡ?
Π’ΡΡΠ΄Π½ΠΎ ΠΏΡΠΈΠ½ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·Π½ΡΠ΅. ΠΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ ΠΈ ΡΡΠ°Π΄ΠΈΡΠΈΠΉ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΡΠΈΠ½ΠΈΠΌΠ°ΠΉΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Git. ΠΠ»Ρ Π²Π°Ρ Π²Π°ΠΆΠ½Π° ΠΏΡΠΎΡΡΠΎΡΠ° ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ, Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΎ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠ΅?
Π§ΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Ρ?
ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠ»ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, ΠΏΡΠΈΠΌΠ΅Π½ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅. Π§ΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΈΡΡΡΡ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΡΠ°Π·ΡΠΌΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Rebase.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Rebase:
- ΠΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ: Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π΄Π΅Π»ΠΈΠ»ΠΈΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ Ρ ΠΊΠ΅ΠΌ-Π»ΠΈΠ±ΠΎ Π΅ΡΠ΅. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ²ΠΎΡ ΠΈΡΡΠΎΡΠΈΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π»ΠΈΡΠ½Π°Ρ Π²ΠΈΠ»ΠΊΠ° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ rebase Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ»ΠΈΡΡ Π² ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ.
- ΠΠ°Ρ ΠΊΠΎΠ΄ Π³ΠΎΡΠΎΠ² ΠΊ ΡΠ΅Π²ΡΡ: Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΏΡΠ»Π» ΡΠ΅ΠΊΠ²Π΅ΡΡ. ΠΡΡΠ³ΠΈΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡ Π²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΡΡΠ³ΠΈΠ²Π°ΡΡ Π΅Π΅ ΠΊ ΡΠ²ΠΎΠ΅ΠΉ Π²ΠΈΠ»ΠΊΠ΅ Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π²ΡΡ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Β«ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°ΡΡΒ» ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π²Π΅ΡΠΊΡ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΠΏΡΠ»Π» ΡΠ΅ΠΊΠ²Π΅ΡΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΠΏΠΎΠ»ΠΎΠΌΠΊΡ ΠΈΡΡΠΎΡΠΈΠΈ.
- Π Π΅Π²ΡΡ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΈ Π³ΠΎΡΠΎΠ²ΠΎ ΠΊ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π² ΡΠ΅Π»Π΅Π²ΡΡ Π²Π΅ΡΠΊΡ. ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ! ΠΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ feature. Π£ΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ fetch-merging ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΡΠΎ Π²Π°Ρ ΡΠ°Π½Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ. ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΈ ΡΠ±ΡΠΎΡΠΈΡΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΈ ΡΡΠΈ Π½Π°Π΄ΠΎΠ΅Π΄Π»ΠΈΠ²ΡΠ΅ Β«ΠΏΠ΅ΡΠ΅Π΄Π΅Π»ΠΊΠΈΒ» ΠΈ Β«ΡΠ»ΠΈΡΠ½ΠΈΠ΅Β» ΡΠ»ΠΈΠ²Π°ΡΡΡΡ Π² Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΠ΅Π»Π΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ²Π½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ Π΄Π»Ρ ΡΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ½ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΡΡΠΈΠ³Π»Π° master.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ Ρ ΠΎΡΡ ΠΈ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ, Π½ΠΎ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Merge ΠΈ Rebase. Π£Π²Π΅ΡΠ΅Π½, Π²Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π°ΠΌ.
ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅:
code = coffee + developerΠΠΎΠΌΠ°Π½Π΄Π° Git Merge — SYSOUT
Π ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΡΡΠΎΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π²Π΅ΡΠ²ΠΈΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΈΠΊΡΠΈΡΡ Π±Π°Π³ βΒ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅, Π° ΠΏΠΎΡΠΎΠΌ ΡΠ»ΠΈΠ²Π°ΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π΅ΡΠΊΡ master.Β ΠΠΎΠΌΠ°Π½Π΄Π° git merge ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠΎΠΊ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π²Π΅ΡΠΊΠ° master. Π Π΅ΡΡΡ Π²Π΅ΡΠΊΠ° hotfix, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΠΈΠΊΡΠΈΠΌ Π±Π°Π³. ΠΡ Π΅Π³ΠΎ ΠΏΠΎΡΠΈΠΊΡΠΈΠ»ΠΈ ΠΈ Ρ ΠΎΡΠΈΠΌ ΡΠ»ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π²Π΅ΡΠΊΡ master. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°Π΄ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Π²Π΅ΡΠΊΡ master β ΡΡ Π²Π΅ΡΠΊΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
git checkout master
Π Π·Π°Π»ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ hotfix Π² ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ master:
git merge hotfix
ΠΡΠΎ ΡΠΈΠΏΠΈΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π³Π»Π°Π΄ΠΊΠΎ. ΠΠΎΠΊΠ° ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ hotfix, ΠΊΡΠΎ-ΡΠΎ ΠΌΠΎΠ³ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΉΠ» Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΌΠ΅ΡΡΠ΅, ΡΡΠΎ ΠΈ ΠΌΡ. Π’ΠΎΠ³Π΄Π° ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π½Π΅ ΡΠ΄Π°Π΅ΡΡΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ.
ΠΠΎΠ½ΡΠ»ΠΈΠΊΡ ΡΠ»ΠΈΡΠ½ΠΈΡ
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΡΠ°ΠΉΠ» index.html ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π» ΠΊΡΠΎ-ΡΠΎ Π΅ΡΠ΅ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΌΠ΅ΡΡΠ΅. Π’ΠΎΠ³Π΄Π° ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ merge ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
$ git merge hotfix Auto-merging index.html CONFLICT (content): Merge conflict in index.html Automatic merge failed; fix conflicts and then commit the result.
Π§ΡΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°ΡΡ? ΠΡΠ»ΠΈ ΠΎΡΠΊΡΡΡΡ index.html, ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Git Π΅Π³ΠΎ ΠΏΠΎΠΌΠ΅ΡΠΈΠ» ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
<<<<<<< HEAD:index.html <div>contact : [email protected]</div> ======= <div> please contact us at [email protected] </div> >>>>>>> hotfix:index.html
ΠΠ°Π΄ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ Π² ΡΠ°ΠΉΠ»Π΅ ΠΈ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΏΠΎΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π² ΠΈΠ½Π΄Π΅ΠΊΡ:
git add index.html
Π ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ½ΠΈΠΌΠΎΠΊ:
git commit
ΠΠ° ΡΡΠΎΠΌ Π²ΡΠ΅, ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½.
ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π΅ΠΊΠΎΠ³Π΄Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ merge (ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΅Π³ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π·):
git merge abort
ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ git merge
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ βno-commit
ΠΡΠ²Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΡΠΎΡΠΈΡ ΡΠ½ΠΈΠΌΠΊΠΎΠ² (ΡΡΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄ commit) Π² Π²Π΅ΡΠΊΠ΅ Π±ΡΠ»Π° ΡΠ΄Π΅Π»Π°Π½Π° Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΎ, ΡΠΎ Π΅ΡΡΡ Π²Ρ Π΄Π΅Π»Π°Π»ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΡΠΎΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ Π½Π° Π²ΡΠ΅ΠΎΠ±ΡΠ΅ΠΌ ΠΎΠ±ΠΎΠ·ΡΠ΅Π½ΠΈΠΈ. ΠΠ΄Π΅ΡΡ ΡΠΎ ΠΈ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ βno-commit. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΡΠ°ΡΡΠΎ β ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠ΅ΡΡΡ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠ½ΠΈΠΌΠΊΠΎΠ² Π²Π΅ΡΠΊΠΈ, ΡΠ°ΠΊ ΡΡΠΎΠ± Π½ΠΈΠΊΡΠΎ ΠΈΡ Π½ΠΈΠΊΡΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ²ΠΈΠ΄Π΅Π» ΠΈ ΠΊ Π½ΠΈΠΌ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ.
ΠΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ merge Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°:
git checkout master git merge hotfix
ΠΠ΅ΡΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° (checkout) ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Ρ Π½Π°Ρ Π½Π° Π²Π΅ΡΠΊΡ master. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π½Π°ΡΠ° ΠΏΠ°ΠΏΠΊΠ° Π½Π° Π΄ΠΈΡΠΊΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ· Π²Π΅ΡΠΊΠΈ master
Π ΠΊΠΎΠΌΠ°Π½Π΄Π° merge:
- ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Ρ Π² master Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π΅ΡΠΊΠΈΒ hotfix. Π’ΠΎ Π΅ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ Ρ ΡΡΠ΅ΡΠΎΠΌ Π·Π°Π»ΠΈΡΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
- ΠΈ ΡΠ΄Π΅Π»Π°Π΅Ρ commit (Π΅ΡΠ»ΠΈ Π½Π΅Ρ Π½Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ²). Π’ΠΎ Π΅ΡΡΡ ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΠ½ΠΈΠΌΠΎΠΊ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ Π·Π°Π½Π΅ΡΠ΅Ρ Π΅Π³ΠΎΒ Π² ΠΈΡΡΠΎΡΠΈΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π²Π΅ΡΠΊΠΈ hotfix Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π° ΠΈ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° merge Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ.
ΠΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ β ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π½Π° Π²Π΅ΡΠΊΡ master, Π² ΠΊΠΎΡΠΎΡΡΡ Π½Π°Π΄ΠΎ Π·Π°Π»ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
git checkout master
ΠΠΎ Π² ΡΡΠΎΡ ΡΠ°Π· Π΄ΠΎΠΏΡΡΡΠΈΠΌ, ΡΡΠΎ ΡΠ½ΠΈΠΌΠΊΠΈ Π² Π²Π΅ΡΠΊΠ΅ hotfixΒ Π±ΡΠ»ΠΈ Π½Π΅Π½ΡΠΆΠ½ΡΠΌΠΈ ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ± ΠΈΡ Π½Π΅ Π±ΡΠ»ΠΎ Π² ΠΈΡΡΠΎΡΠΈΠΈ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ βno-commit:
git merge --no-commit hotfix
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ βΒ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Ρ Π² Π½ΠΈΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π΅ΡΠΊΠΈ hotfix, Π½ΠΎ ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ½ΠΈΠΌΠΊΠ° ΡΠ΄Π΅Π»Π°Π½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΡ ΡΠΌΠΎΠΆΠ΅ΠΌ Π΅ΡΠ΅ ΠΊΠΎΠ΅-ΡΡΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π² ΡΠ°ΠΉΠ»Π°Ρ ΠΈ ΠΏΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ commit ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΡΠΈ ΡΡΠΎΠΌ Π² ΠΈΡΡΠΎΡΠΈΡ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ. ΠΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π²Π΅ΡΠΊΠ° hotfix ΡΠ»ΠΈΡΠ° Ρ Π²Π΅ΡΠΊΠΎΠΉ master, ΠΈ Π²ΡΠ΅. Π ΡΠ½ΠΈΠΌΠΊΠΈ Π²Π΅ΡΠΊΠΈ hotfix Π²ΠΈΠ΄Π½Ρ Π½Π΅ Π±ΡΠ΄ΡΡ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ βsquash
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ, ΡΠ°Π·Π½ΠΈΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ. ΠΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ Π½Π° Π²Π΅ΡΠΊΡ master, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π·Π°Π»ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
git checkout master
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git merge --squash hotfix
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΒ ΠΏΠΎΡΠ²ΡΡΡΡ Π² ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΠ°ΠΏΠΊΠ°Ρ Π²Π΅ΡΠΊΠΈ master, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌΒ βno-commit. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ½ΠΈΠΌΠΊΠ° (commit) ΡΠ°ΠΊ ΠΆΠ΅ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ.
ΠΠΎ Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ commit ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΡΡΠΎΡ ΡΠ½ΠΈΠΌΠΎΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΌΡΠΉ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ Π² Π²Π΅ΡΠΊΠ΅ master. Π’ΠΎ, ΡΡΠΎ Π²Π΅ΡΠΊΠ° hotfix ΡΠ»ΠΈΠ²Π°Π»Π°ΡΡ Π² Π²Π΅ΡΠΊΡ master, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ Π² ΠΈΡΡΠΎΡΠΈΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ βno-ff
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ βno-ff Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΡ.
ff ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ fast forward, ΡΠΎ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠ°.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ ΠΎΠ±ΡΡΡΠ½Ρ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠ°. ΠΠ½Π° ΡΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ, Π΅ΡΠ»ΠΈ Π² ΡΠΎΠΉ Π²Π΅ΡΠΊΠ΅, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΠΎΡΠ²Π΅ΡΠ²ΠΈΠ»ΠΈΡΡ, Π½Π΅ Π±ΡΠ»ΠΎ ΡΠ½ΠΈΠΌΠΊΠΎΠ² ΠΏΠΎΡΠ»Π΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΡΠ²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ. ΠΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠΎΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ½ΠΈΠΌΠΊΠ° Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π΅Π»Π°ΡΡ Π½Π΅ Π½Π°Π΄ΠΎ, Π²ΡΠΏΠΎΠ»Π½ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π΄Π²ΡΡ ΠΏΡΠ΅Π΄ΠΊΠΎΠ².Β ΠΠ°Ρ ΡΠ½ΠΈΠΌΠΎΠΊ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ, ΠΈ Π½Π° Π½Π΅Π³ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΠ° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ ΠΌΡ ΠΎΡΠ²Π΅ΡΠ²ΠΈΠ»ΠΈΡΡ ΠΎΡ Π‘ ΠΈ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ X ΠΈ Y. ΠΠΎΡΠ»Π΅ ΡΠ½ΠΈΠΌΠΊΠ° C Π² Π²Π΅ΡΠΊΠ΅ master Π½ΠΈΠΊΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π», ΠΈ ΠΏΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡΡ Π½Π° ΡΠ½ΠΈΠΌΠΎΠΊ Y:
master: A - B - C
\
hotfix: X - YΠΡΠ΅ ΡΠ°Π· ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² Π²Π΅ΡΠΊΠ΅ master ΠΏΠΎΡΠ»Π΅ ΠΎΡΠ²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ ΠΎΡ Π‘ ΡΠ½ΠΈΠΌΠΊΠΎΠ² Π½Π΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠ° ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° βno-ff ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ Π½ΠΎΠ²ΡΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ, Ρ ΠΎΡΡ Π² Π½Π΅ΠΌ ΠΈ Π½Π΅Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. Π‘Π΄Π΅Π»Π°Π΅ΠΌ ΡΡΠΎ:
git merge --no-ff hotfix
ΠΠ° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
master: A - B - C - (M)
\ /
hotfix: X - YΠΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ M ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡΡ Π½Π° Π½Π΅Π³ΠΎ (Ρ ΠΎΡΡ ΠΌΠΎΠ³ Π±Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡΡΡ Π½Π° Y, Π΅ΡΠ»ΠΈ Π± Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° βno-ff).
ΠΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ βno-ff ΡΠΊΠ°Π·Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎ β ΠΎΡΡΠ°ΡΡΠΈ ΡΡΠΎ Π²ΠΎΠΏΡΠΎΡ Π²ΠΊΡΡΠ°. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΠ±ΡΡ Π΄Π΅Π»Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ ΠΏΡΠΈ Π»ΡΠ±ΠΎΠΌ Π²Π°ΠΆΠ½ΠΎΠΌ ΡΠ»ΠΈΡΠ½ΠΈΠΈ.
Π‘Π»ΠΈΡΠ½ΠΈΡ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠ΄ΠΆΠΈ Π²Π΅ΡΠΎΠΊ. Π£ΡΠΎΠΊ 9
Π£ΡΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ Π½Π°ΡΡΠΈΠΌΡΡ ΠΌΠ΅ΡΠ΄ΠΆΠΈΡΡ Π²Π΅ΡΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ
ΠΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ
ΠΠΎΠ½ΡΠΏΠ΅ΠΊΡ ΡΡΠΎΠΊΠ°
ΠΡΠ°ΡΠΊΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΡΠΎΠΊΠ°, ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ ΠΈ ΡΠΎΠ²Π΅ΡΡ.
ΠΠ΅ΡΠΊΠ° master — Π΅ΡΠ΅ ΡΠ°Π·
ΠΠ°ΡΡΠ΅Ρ — ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π²Π΅ΡΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π² ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΠΎΠ²ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ² ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅.
Π ΡΡΠΎΠΉ Π²Π΅ΡΠΊΠ΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ ΠΊΠΎΠ΄, ΡΡΠΎ ΠΈ Π½Π° Π±ΠΎΠ΅Π²ΠΎΠΌ ΡΠ°ΠΉΡΠ΅
Π ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ
ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ
ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΠ½ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ Π½Π°ΡΡΠ΅Ρ Π²Π΅ΡΠΎΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ Π²Π΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠ½Π°ΡΠ°Π»Π° ΡΠ»ΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ Π²Π΅ΡΠΊΡ.
ΠΠΎ Π² Π½Π°ΡΠΈΡ
ΡΡΠΎΠΊΠ°Ρ
ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΡ
ΠΎΠ΄ΠΈΡΡ ΠΈΠ· ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Π΅ΡΠΊΠ° ΠΌΠ°ΡΡΠ΅Ρ — Π³Π»Π°Π²Π½Π°Ρ ΠΈ Π² Π½Π΅Π΅ Π² ΠΈΡΠΎΠ³Π΅ Π·Π°Π»ΠΈΠ²Π°ΡΡΡΡ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΠΊΠΈ
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΠ°Π·Π½ΡΡ
ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡΡ
ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΊΡΡΡΠ°.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠ΅ΡΠ΄ΠΆ ΠΈΠ»ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ
ΠΡΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π²Π΅ΡΠΊΠΎΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΄Π΅Π»Π°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡΠ°Π²ΠΈΠ»ΠΈ Π±Π°Π³Ρ, ΠΌΡ ΡΠ»ΠΈΠ²Π°Π΅ΠΌ Π΅Π΅ Π² ΠΌΠ°ΡΡΠ΅Ρ.
Π ΠΌΠ°ΡΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π΅ΡΠ΅ ΡΠ°Π· ΠΈ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π½Π° Π±ΠΎΠ΅Π²ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ.
Π‘Π»ΠΈΠ²Π°ΡΡ Π΄ΡΡΠ³ Π² Π΄ΡΡΠ³Π° ΠΌΠΎΠΆΠ½ΠΎ Π»ΡΠ±ΡΠ΅ Π²Π΅ΡΠΊΠΈ. Π’Π΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ, Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ git Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ, ΡΠ»ΠΈΠ²Π°Π΅ΡΡΡ Π²Π΅ΡΠΊΠ° Ρ Π½ΠΎΠ²ΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ Π² ΠΌΠ°ΡΡΠ΅Ρ ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
ΠΠ»Ρ Π½Π°Ρ ΠΌΠ°ΡΡΠ΅Ρ — ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π²Π΅ΡΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π° Π΄Π»Ρ git ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π²Π΅ΡΠΊΠ°.
Π Π°Π·Π½ΠΈΡΠ° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ
ΠΡ Π±ΡΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡ, ΡΡΠΎ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΠΊΠ° ΡΠ»ΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΌΠ°ΡΡΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ ΠΈ Ρ
ΠΎΡΠΈΠΌ Π²ΡΠ»ΠΎΠΆΠΈΡΡ Π΅Π³ΠΎ Π½Π° Π±ΠΎΠ΅Π²ΠΎΠΉ ΡΠ°ΠΉΡ.
Π’ΠΎΠ³Π΄Π° ΠΌΡ ΡΠ»ΠΈΠ²Π°Π΅ΠΌ Π²Π΅ΡΠΊΡ Π² ΠΌΠ°ΡΡΠ΅Ρ ΠΈ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌ ΠΌΠ°ΡΡΠ΅Ρ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½.
ΠΠ°ΡΡΠ΅Ρ ΡΠ»ΠΈΠ²Π°Π΅ΡΡΡ Π² Π²Π΅ΡΠΊΡ ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠ΅Ρ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°Π΅ΡΡΡ Π² Π²Π΅ΡΠΊΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ Π²Π΅ΡΠΊΠΎΠΉ, Π½ΠΎ Ρ
ΠΎΡΠΈΠΌ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° — Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ Π½Π°ΡΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ.
ΠΡΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ Π²Π΅ΡΠΊΠΎΠΉ ΠΈΠ΄Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΎ, Π΅ΡΡΡ ΡΠΌΡΡΠ» ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΌΠ°ΡΡΠ΅ΡΠ° Ρ
ΠΎΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ.
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΡΠ΅ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΠ΄ΠΆ ΡΠ²ΠΎΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ Π² ΠΌΠ°ΡΡΠ΅Ρ ΠΈ ΠΌΠ΅ΡΠ΄ΠΆ ΠΌΠ°ΡΡΠ΅ΡΠ° Π² ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ.
ΠΠ΅ΡΠ΄ΠΆ Π²Π΅ΡΠΊΠΈ Π² ΠΌΠ°ΡΡΠ΅Ρ
ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΠ²ΠΎΠ΅ΠΉ Π²Π΅ΡΠΊΠΎΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git merge. Π§ΡΠΎΠ±Ρ Π²ΠΌΠ΅ΡΠ΄ΠΆΠΈΡΡ Π²Π΅ΡΠΊΡ Π² ΠΌΠ°ΡΡΠ΅Ρ, Π½ΡΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΌΠ°ΡΡΠ΅Ρ, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ git merge branch_name.
$ git checkout master
$ git merge news
ΠΡΠΈ ΡΡΠΎΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ
ΠΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ Π½ΠΈΡ
ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
ΠΠΎΠΊΠ° ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π½Π°Π΄ Π²Π΅ΡΠΊΠΎΠΉ, Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅ Π½Π΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
Π’ΠΎ Π΅ΡΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π²Π΅ΡΠΊΡ, ΠΏΠΎΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π½Π°Π΄ Π½Π΅ΠΉ, ΡΠΎΠ±ΡΠ°Π»ΠΈΡΡ Π·Π°Π»ΠΈΠ²Π°ΡΡ Π΅Π΅ Π² ΠΌΠ°ΡΡΠ΅Ρ, Π° Π·Π° ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π½ΠΎΠ²ΡΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠ°ΠΌ Π½Π΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ. Π’ΠΎΠ³Π΄Π° ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡ ΡΠ°ΠΊ
$ git merge news
Updating f32b91e..33ea897
Fast-forward
index.html | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
$ git push origin master
$ git branch -d news
Git ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΠΏΠΎΠ²Π΅ΡΡ
ΡΡΠ°ΡΠΎΠ³ΠΎ. ΠΡΠΎ ΠΏΡΠΎΡΡΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΈ git Π½Π΅ Π·Π°Π΄Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
Π²ΠΎΠΏΡΠΎΡΠΎΠ².
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΡΡΠ°Π·Ρ Π·Π°ΠΏΡΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΈΡ
ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ, ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ header, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Π°.
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΡΡΠ³Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ.
ΠΠΎΠΊΠ° ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π½Π°Π΄ Π²Π΅ΡΠΊΠΎΠΉ, Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΎΡ ΠΊΠΎΠ»Π»Π΅Π³
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π½Π° ΠΌΠ°ΡΡΠ΅Ρ
$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
ΠΠΎΡΠ΅ΠΌΡ «is up-to-date»? ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ Π΅ΡΠ΅ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ git pull. ΠΠ΅Π»Π°Π΅ΠΌ
$ git pull --rebase origin master
ΠΠ΅ΡΠ΄ΠΆΠΈΠΌ ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ Π² ΠΌΠ°ΡΡΠ΅Ρ
$ git merge news-styles
Π Π½Π΅ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ Π·Π°ΠΏΡΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ
$ git push origin master
Π§ΡΠΎ Π΅ΡΠ»ΠΈ ΡΠ½Π°ΡΠ°Π»Π° Π½Π΅ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡ ΠΌΠ°ΡΡΠ΅Ρ, Π° ΡΠΌΠ΅ΡΠ΄ΠΆΠΈΡΡ ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ
ΠΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, Π½ΠΎ Π»ΡΡΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ΄Π΅Π»Π°ΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΡ ΠΌΠ°ΡΡΠ΅Ρ, Π° ΡΠΆΠ΅ ΠΏΠΎΡΠΎΠΌ Π·Π°Π»ΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π Π΅ΡΠ΅ Π»ΡΡΡΠ΅ Π΄Π΅ΡΠΆΠ°ΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ°ΡΡΠ΅ΡΠ°.
ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΡΠΎΠΈΡ ΠΏΠΎΡΠ°ΡΠ΅ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡ ΠΌΠ°ΡΡΠ΅Ρ Π² ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ Π² ΡΠ²ΠΎΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Ρ Π½Π°Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠΈΡΠΊΠ° ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠ»ΠΎΠΌΠ°ΡΡ.
Π Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΠΎΠΌΠ°Π΅ΠΌ, ΡΠΎ Π»ΡΡΡΠ΅ ΡΠΈΠ½ΠΈΡΡ ΡΡΠΎ Π² ΡΠ²ΠΎΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅, Π° Π½Π΅ Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅.
ΠΠ°ΠΊ Π²ΠΌΠ΅ΡΠ΄ΠΆΠΈΡΡ ΠΌΠ°ΡΡΠ΅Ρ Π² ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ
Π‘Π½Π°ΡΠ°Π»Π° ΠΈΠ΄Π΅ΠΌ Π² ΠΌΠ°ΡΡΠ΅Ρ, ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠΎ Π΅ΡΡΡ Π΄Π΅Π»Π°Π΅ΠΌ git pull. ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π² ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ git merge master
$ git checkout master
$ git pull --rebase origin master
$ git checkout news-redesign
$ git merge master
ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ»ΠΎΠΌΠ°Π»ΠΎΡΡ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠ΅ΡΠ΄ΠΆ ΠΊΠΎΠΌΠΌΠΈΡΡ
Π§Π΅ΠΌ ΡΠ°ΡΠ΅ ΠΌΠ΅ΡΠ΄ΠΆΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ
ΠΌΠ΅ΡΠ΄ΠΆ-ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°Π΅ΠΌ ΠΌΠ°ΡΡΠ΅Ρ Π² ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ ΠΈΠ»ΠΈ ΡΠ»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ Π² ΠΌΠ°ΡΡΠ΅Ρ.
ΠΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ Π½Π΅ Ρ
ΡΠ°Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΎΠ½ΠΈ Ρ
ΡΠ°Π½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΊΡ ΠΌΠ΅ΡΠ΄ΠΆΠ° ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ.
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈ Π½Π°ΠΉΠ΄Π΅ΠΌ ΠΌΠ΅ΡΠ΄ΠΆ-ΠΊΠΎΠΌΠΌΠΈΡ Ρ Ρ
ΡΡΠ΅ΠΌ 051f754
$ git log --oneline
051f754 Merge branch 'news'
...
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅
$ git show 051f754
commit 051f75475cb1dca3cd08c1c7367a3308671ccf7b
Merge: 0a3a6a3 2346be5
Author: Alexandr Shestakov
Date: Sat Feb 8 14:10:39 2020 +0300
Merge branch 'news'
Π’ΠΎ Π΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π² ΠΌΠ°ΡΡΠ΅Ρ Π±ΡΠ»Π° Π·Π°Π»ΠΈΡΠ° Π²Π΅ΡΠΊΠ° news. Π‘Π°ΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ Π² Π²Π΅ΡΠΊΠ΅ news, Π»Π΅ΠΆΠ°Ρ Π² Π΄ΡΡΠ³ΠΈΡ
ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ
.
Π‘ΠΏΠΎΡΡ ΠΎ ΡΠΎΠΌ, Π΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·Π° ΠΎΡ ΡΠ°ΠΊΠΈΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π²Π΅Π΄ΡΡΡΡ Π³ΠΎΠ΄Π°ΠΌΠΈ ΠΈ Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠ°ΡΡΡ, Π²ΠΈΠ΄ΠΈΠΌΠΎ, Π½ΠΈΠΊΠΎΠ³Π΄Π°.
ΠΠ»ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ±ΠΎΡΠ° — git ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π±Π΅Π· ΡΠ°ΠΊΠΈΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π²ΠΎΠΎΠ±ΡΠ΅.
Π’ΠΎΠ³Π΄Π° ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄Π΅, Π° Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ. ΠΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΡΠ΅Π±Π΅ΠΉΠ·Π°, Π½ΠΎ ΡΡΠΎ ΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΡ
ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΡΡΡΠ°.
Π Π΅Π±Π΅ΠΉΠ·, Π΅Π³ΠΎ ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ, ΠΌΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΊΡΡΡΠ°.
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΌΠΎΡ ΡΡΠ°ΡΡΡ ΡΡΠ°ΡΡΡ — ΠΡΠ»ΠΈΡΠΈΡ ΠΌΠ΅ΡΠ΄ΠΆΠ° ΠΎΡ ΡΠ΅Π±Π΅ΠΉΠ·Π°.
Π Π½Π΅ΠΉ Π½Π΅Ρ Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊΠ°, Π½ΠΎ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ°Ρ
.
ΠΠ΅ΡΠ΄ΠΆΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ ΡΠ°ΠΊ Π³Π»Π°Π΄ΠΊΠΎ?
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½Π΅Ρ
Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΡΠΏΡΠΎΡΠ°Π»ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΈ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π΄ΡΡΠ³ΠΈΡ
ΡΡΠ°ΡΡΠΊΠ°Ρ
ΠΊΠΎΠ΄Π°. Π’ΠΎ Π΅ΡΡΡ ΠΌΡ Ρ Π½ΠΈΠΌΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°Π»ΠΈΡΡ.
Π ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ ΡΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π½Π΅ Π²ΡΠ΅Π³Π΄Π°. ΠΠ½ΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΠ°Π²ΠΈΠΌ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΡΡΠ°ΡΡΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈ ΡΠΎΠ³Π΄Π° ΠΏΡΠΈ ΠΈΡ
ΡΠ»ΠΈΡΠ½ΠΈΠΈ git Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΠ΅ΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ. ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°Ρ
ΠΈ ΠΈΡ
ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠΎΠΊΠ΅.
Π§ΡΠΎ ΠΌΠΎΠ³Ρ ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°ΡΡ
- ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΠΌΠ°ΡΡΠ΅Ρ — ΡΡΠΎ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΡΡΠΎΠΈΡ Π»ΠΎΠΌΠ°ΡΡ
- Π ΠΌΠ°ΡΡΠ΅Ρ Π½Π΅ ΡΠ»ΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ°, ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»
- ΠΠ΅ΡΠ΅Π΄ ΠΌΠ΅ΡΠ΄ΠΆΠ΅ΠΌ ΡΠ²ΠΎΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ Π² ΠΌΠ°ΡΡΠ΅Ρ, ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠ΅Ρ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°
- ΠΠΎΡΠ»Π΅ ΠΌΠ΅ΡΠ΄ΠΆΠ° Π² ΠΌΠ°ΡΡΠ΅Ρ, Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΠΏΡΡΠΈΡΡ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ
- ΠΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΠΉΡΠ΅ ΠΌΠ°ΡΡΠ΅Ρ Π² ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ ΠΏΠΎΡΠ°ΡΠ΅
- ΠΠ΅ΡΠ΄ΠΆ-ΠΊΠΎΠΌΠΌΠΈΡΡ Π½Π΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎ ΡΠ°ΠΊΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠΎΠΊ. ΠΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Ρ
- ΠΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΡΠ΅Π±Π΅ΠΉΠ·Π°, ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π΅ΡΡΠΈ ΡΠΈΡΡΡΡ ΠΈΡΡΠΎΡΠΈΡ Π±Π΅Π· ΠΌΠ΅ΡΠ΄ΠΆ-ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ Π΄ΠΎ Π²ΡΡΡΠ΅ΡΠΈ!
ΠΡΠ΅ ΡΡΠΎΠΊΠΈ ΠΊΡΡΡΠ°
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ…
ΠΏΡΠΈΠΌΠ΅Ρ merge develop Π² master
ΠΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΌΠ΅ΡΠ΄ΠΆΠΈΡΡ Π±ΡΠ°Π½Ρ ΠΈΠ· Π΄Π΅Π²Π΅Π»ΠΎΠΏ-Π²Π΅ΡΠΊΠΈ Π² ΠΌΠ°ΡΡΠ΅Ρ, Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈ ΠΈΡΡΠΎΡΠΈΠΈ.
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π½Π° ΠΌΠ°ΡΡΠ΅Ρ, ΠΏΠΎΡΡΠ³ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
$ git checkout master $ git pull Already up to date.
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π½Π° Π±ΡΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅ΠΌ ΠΌΠ΅ΡΠ΄ΠΆΠΈΡΡ Π² master, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠΎΒ LTHS-380_Update_build_deploy_to_compose:
gitΒ checkoutΒ LTHS-380_Update_build_deploy_to_compose
MΒ Β Β Β Β Β Β scripts/api_start.sh
MΒ Β Β Β Β Β Β terraform/terraform-cn.sh
SwitchedΒ toΒ branchΒ ‘LTHS-380_Update_build_deploy_to_compose’
YourΒ branchΒ isΒ upΒ toΒ dateΒ withΒ ‘origin/LTHS-380_Update_build_deploy_to_compose’.
M ΠΏΠΎΡΠ»Π΅ ΡΠ΅ΠΊΠ°ΡΡΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ°ΠΉΠ» Π±ΡΠ» modified:
M= modifiedA= addedD= deletedR= renamedC= copiedU= updated but unmerged
ΠΠΎ ΡΡΡ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ Π½ΡΠΆΠ½Ρ, ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ ΠΈΡ Π½Π΅ Π½Π°Π΄ΠΎ, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ.
ΠΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π΄Π΅Π²Π΅Π»ΠΎΠΏ-Π±ΡΠ°Π½ΡΠ΅:
gitΒ pull
AlreadyΒ upΒ toΒ date.
Π’ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅Ρ.
ΠΠ΅ΡΠΆΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΌΠ°ΡΡΠ΅ΡΠ° Π² Π΄Π΅Π²Π΅Π»ΠΎΠΏ Π±ΡΠ°Π½Ρ, ΡΡΠΎ Π±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ΅ΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ, Π΅ΡΠ»ΠΈ Π±ΡΠ΄ΡΡ, Π² Π΄Π΅Π²Π΅Π»ΠΎΠΏ-Π±ΡΠ°Π½ΡΠ΅:
gitΒ mergeΒ master
AlreadyΒ upΒ toΒ date.
Π’ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ, ΠΏΠΎΡΠΎΠΌΡ up to date, ΠΈΠ΄ΡΠΌ Π΄Π°Π»ΡΡΠ΅.
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π½Π° ΠΌΠ°ΡΡΠ΅Ρ:
ΠΠ΅ΡΠ΄ΠΆΠΈΠΌ Π² Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π΄Π΅Π²Π΅Π»ΠΎΠΏ-Π²Π΅ΡΠΊΠΈ:
gitΒ mergeΒ -mΒ «composeΒ migrationΒ complete»Β —no-ffΒ LTHS-380_Update_build_deploy_to_compose
RemovingΒ terraform/files/userdata/eureka.sh
RemovingΒ terraform/eureka.tf
RemovingΒ packer/eureka/template.json
RemovingΒ packer/eureka/app.sh
MergeΒ madeΒ byΒ theΒ ‘recursive’Β strategy.
packer/api/app.shΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β |Β Β 1Β +
packer/api/docker-compose.ymlΒ Β Β Β Β Β Β |Β 64Β ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
packer/api/template.jsonΒ Β Β Β Β Β Β Β Β Β Β Β |Β Β 8Β +++++++-
packer/eureka/app.shΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β |Β 11Β ————
packer/eureka/template.jsonΒ Β Β Β Β Β Β Β Β |Β 35Β ————————————
terraform/api.tfΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β |Β 35Β ————————————
terraform/eureka.tfΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β |Β 91Β ——————————————————————————————-
terraform/files/userdata/api.shΒ Β Β Β Β |Β 37Β ++++———————————
terraform/files/userdata/eureka.shΒ Β |Β Β 8Β ———
terraform/security_group_api_elb.tfΒ |Β 74Β +————————————————————————-
terraform/variables.tfΒ Β Β Β Β Β Β Β Β Β Β Β Β Β |Β Β 3Β +++
11Β filesΒ changed,Β 80Β insertions(+),Β 287Β deletions(-)
createΒ modeΒ 100644Β packer/api/docker-compose.yml
deleteΒ modeΒ 100644Β packer/eureka/app.sh
deleteΒ modeΒ 100644Β packer/eureka/template.json
deleteΒ modeΒ 100644Β terraform/eureka.tf
deleteΒ modeΒ 100644Β terraform/files/userdata/eureka.sh
ΠΠΏΡΠΈΡ --no-ff, ΠΈΠ»ΠΈ no fast-forward ΠΎΠΏΠΈΡΠ°Π½Π° Π² ΠΏΠΎΡΡΠ΅ Git: merge β Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Π° ΠΎΠΏΡΠΈΡ βno-ff, no-fast-forward.
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΡΠ°Π»ΠΎΡΡ Π·Π°ΠΏΡΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ:
gitΒ push
CountingΒ objects:Β 1,Β done.
WritingΒ objects:Β 100%Β (1/1),Β 228Β bytesΒ |Β 228.00Β KiB/s,Β done.
TotalΒ 1Β (deltaΒ 0),Β reusedΒ 0Β (deltaΒ 0)
ToΒ ssh://bitbucket.domain.tld:7999/server-api-infrastructure.git
391c558..1e23693Β Β masterΒ ->Β master
ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ:
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ±Π΅ΡΡΠΌ Π²ΡΡ Π²ΠΌΠ΅ΡΡΠ΅:
git checkout master// ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π½Π° ΠΌΠ°ΡΡΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ ΠΌΠ΅ΡΠ΄ΠΆgit pull// ΠΏΠΎΠ΄ΡΠ³ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡgit checkout develop// ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π½Π° Π±ΡΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅ΠΌ ΠΌΠ΅ΡΠ΄ΠΆΠΈΡΡ Π² ΠΌΠ°ΡΡΠ΅Ρgit pull// ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡgit merge master// ΠΌΠ΅ΡΠ΄ΠΆΠΈΠΌ ΠΌΠ°ΡΡΠ΅Ρ Π² Π΄Π΅Π²Π΅Π»ΠΎΠΏ-Π±ΡΠ°Π½Ρ, ΡΠ΅ΡΠ°Π΅ΠΌ ΠΊΠΎΠ½ΡΠΈΠ»ΠΈΠΊΡΡ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ, Π² Π΄Π΅Π²Π΅Π»ΠΎΠΏ Π±ΡΠ°Π½ΡΠ΅git checkout master// ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π½Π° ΠΌΠ°ΡΡΠ΅Ρgit merge -m "merge message" develop// ΠΌΠ΅ΡΠ΄ΠΆΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ° Π² ΠΌΠ°ΡΡΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ--no-ffgit push// ΠΏΡΡΠΈΠΌ ΠΌΠ°ΡΡΠ΅Ρ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
ΠΡΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ Π·Π°Π΄Π°ΡΠ΅ΠΉ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΡΡ Π±ΡΠ°Π½Ρ, Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π° β ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ git ΡΠ΅Π³ ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ Π±ΡΠ°Π½Ρ.
Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΡΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
git checkout master// ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π½Π° ΠΌΠ°ΡΡΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ ΠΌΠ΅ΡΠ΄ΠΆgit pull// ΠΏΠΎΠ΄ΡΠ³ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡgit checkout develop// ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π½Π° Π±ΡΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅ΠΌ ΠΌΠ΅ΡΠ΄ΠΆΠΈΡΡ Π² ΠΌΠ°ΡΡΠ΅Ρgit pull// ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡgit merge master// ΠΌΠ΅ΡΠ΄ΠΆΠΈΠΌ ΠΌΠ°ΡΡΠ΅Ρ Π² Π΄Π΅Π²Π΅Π»ΠΎΠΏ-Π±ΡΠ°Π½Ρ, ΡΠ΅ΡΠ°Π΅ΠΌ ΠΊΠΎΠ½ΡΠΈΠ»ΠΈΠΊΡΡ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ, Π² Π΄Π΅Π²Π΅Π»ΠΎΠΏ Π±ΡΠ°Π½ΡΠ΅git checkout master// ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π½Π° ΠΌΠ°ΡΡΠ΅Ρgit merge -m "merge message" develop// ΠΌΠ΅ΡΠ΄ΠΆΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ° Π² ΠΌΠ°ΡΡΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ--no-ffgit tag -a v0.1 -m "tag message"// Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ΅Π³ Π½Π° ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡgit push origin v0.1// ΠΏΡΡΠΈΠΌ ΡΠ΅Π³git branch -d develop// ΡΠ΄Π°Π»ΡΠ΅ΠΌ develop Π±ΡΠ°Π½Ρ, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ β Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΈΠ· ΡΠ΅Π³ΠΎΠ² βgit checkout -b develop v1.0git push// ΠΏΡΡΠΈΠΌ ΠΌΠ°ΡΡΠ΅Ρ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
ΠΠΎΡΠΎΠ²ΠΎ.
ΠΠ·ΡΡΠ°Π΅ΠΌ git. merge vs rebase Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
Π°Π²Π³ΡΡΡ
21
, 2016
ΠΡΠΎ git merge ΠΈ git rebase Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΡΡΡΡΡΠΈ ΡΡΠ°ΡΠ΅ΠΉ. ΠΠ°ΡΠ΅ΠΌ ΠΆΠ΅ Π½ΡΠΆΠ½Π° Π΅ΡΠ΅ ΠΎΠ΄Π½Π°?
Π Π°Π·Π±ΠΈΡΠ°ΡΡΡ Π² ΡΠ²ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Ρ git rebase, Ρ Π½Π΅ Π½Π°ΡΠ΅Π» Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π³ΠΈΡΠΎΠΌ. Π― Π²ΠΈΠ΄Π΅Π» ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡ
Π΅ΠΌ ΡΠ΅Π±Π΅ΠΉΠ·Π°, Π½ΠΎ ΡΠ°ΠΊ ΠΈ Π½Π΅ ΠΌΠΎΠ³ ΠΏΠΎΠ½ΡΡΡ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΆΠ΅ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ Π½ΡΠΆΠ΅Π½ rebase, ΡΠ΅ΠΌ ΠΎΠ½ ΡΠ°ΠΊ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ merge. ΠΠΎΠ³Π΄Π° ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ rebase ΠΈ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠ»ΠΎΡ
ΠΎΠ³ΠΎ (ΠΈ Π±ΡΠ΄Π΅Ρ Π»ΠΈ), Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ.
Π― Π½Π΅ Π»ΡΠ±Π»Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΡΡ
Π΅ΠΌΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ· ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ Π΄Π²ΡΡ
ΠΊΠΎΠ»Π»Π΅Π³-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ². ΠΠ°Π³Π»ΡΠ΄Π½ΠΎ, Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΡΠΌΠΈ, ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ merge ΠΈ rebase. ΠΠ»Ρ Π΄Π°Π²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ
Ρ Π³ΠΈΡΠΎΠΌ Π² ΡΡΠ°ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ. Π’Π΅ΠΌ ΠΆΠ΅, ΠΊΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ rebase, Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠ°ΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠΈΡΡΠ°ΡΠΈΡ: Π΄Π²ΠΎΠ΅ ΠΊΠΎΠ»Π»Π΅Π³, Π½Π°Π·ΠΎΠ²Π΅ΠΌ ΠΈΡ
ΠΠ°ΡΡ ΠΈ ΠΠ΅ΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ.
ΠΡΡΡΡ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ°ΠΉΡ.
Π€Π°ΠΉΠ» index.html Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΎΠΉ ΠΈΠ· ΠΌΠ΅Π½Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΠ΄Π²Π°Π»Π°.
Π ΡΡΠΈΠ»ΠΈ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΈΡΡ style.css.
ΠΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ Π΄Π°Π»ΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π°Π΄ ΠΏΠΎΠ΄Π²Π°Π»ΠΎΠΌ ΡΠ°ΠΉΡΠ°.
ΠΠ΅ΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ Π²Π΅ΡΡ
Π½ΠΈΠΌ ΠΌΠ΅Π½Ρ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ — ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ.
Π ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π²Π΅ΡΠΊΠ° master, Π² Π½Π΅Π΅ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡΡ ΠΈ ΠΠ°ΡΡ, ΠΈ ΠΠ΅ΡΡ.
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΡΠΈΠ»ΡΠΌΠΈ ΠΏΠΎΠ΄Π²Π°Π»Π° ΠΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ new-footer, Π΄Π΅Π»Π°Ρ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Π½Π΅Π΅ ΠΈ Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°Ρ Π² ΡΡΡ Π²Π΅ΡΠΊΡ ΠΌΠ°ΡΡΠ΅Ρ.
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ new-footer ΠΠ°ΡΡ ΡΠΎΠ»ΡΠ΅Ρ Π΅Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π΅ΡΠΊΡ.
Π ΠΏΠ»Π°Π½Π΅ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠΎΠΊ git merge ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ git rebase ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ½Π° ΠΊΡΠ°ΡΠΈΠ²Π° ΠΈ ΠΏΠΎΠ½ΡΡΠ½Π°.
Π ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΡΡΠ°ΠΏΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠ°Π±ΠΎΡΠ° Π² ΡΠ»ΡΡΠ°Π΅ merge ΠΈ rebase ΠΈ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈ Π²Π΅ΡΠΎΠΊ.
ΠΠ°ΡΠΈΠ½Π°Π΅Ρ ΠΏΡΠΎΠ΅ΠΊΡ ΠΠ°ΡΡ, ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ ΠΏΡΡΠΈΡ Π΅Π³ΠΎ.
ΠΠ°Π»ΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠΆΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΠ΅ΡΠ΅ΠΉ.
ΠΠΎΠΊΠ° Π½Π°ΡΠ° Π²Π΅ΡΠΊΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ (ΡΠΊΡΠΈΠ½ΡΠΎΡΡ Π²Π·ΡΡΡ ΠΈΠ· phpStorm, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° git log)
ΠΠ°Π»ΡΡΠ΅ ΠΠ°ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄Π²Π°Π» ΠΏΡΡΠΌΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ Π² ΠΌΠ°ΡΡΠ΅Ρ.
ΠΠ°ΡΡ Ρ
ΠΎΡΠ΅Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΏΠΎΠ΄Π²Π°Π»ΠΎΠΌ ΡΠΎ ΡΠ²ΠΎΠΈΠΌ ΠΊΠΎΠ»Π»Π΅Π³ΠΎΠΉ ΠΠ΅ΡΠ΅ΠΉ ΠΈ ΠΏΡΡΠ°Π΅ΡΡΡ Π·Π°ΠΏΡΡΠΈΡΡ ΠΌΠ°ΡΡΠ΅Ρ.
ΠΠΎ ΠΠ΅ΡΡ ΡΠΆΠ΅ ΡΡΠΏΠ΅Π» Π·Π°ΠΏΡΡΠΈΡΡ ΡΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ Π² ΠΌΠ°ΡΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠ°ΡΠ°ΡΡΠΈΠΉΡΡ ΠΌΠ΅Π½Ρ.
ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, git Π½Π΅ Π΄Π°ΡΡ Π·Π°ΠΏΡΡΠΈΡΡ Π²Π΅ΡΠΊΡ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΠ°ΡΡ Π½Π΅ ΠΏΠΎΠ΄ΡΡΠ½Π΅Ρ ΡΠ²Π΅ΠΆΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΎΡ ΠΠ΅ΡΠΈ.
Π§ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΠ΅?
ΠΠ°ΡΡ Π΄Π΅Π»Π°Π΅Ρ
git pull origin master
ΠΈ Π²ΠΈΠ΄ΠΈΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΡΡΠΎ
Π§ΡΠΎ ΡΡΠΎ Π·Π° Ρ
ΡΠ΅Π½Ρ? Π£ Π½Π°Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ 3 ΠΊΠΎΠΌΠΌΠΈΡΠ°: initial, ΠΎΠ΄ΠΈΠ½ ΠΎΡ ΠΠ°ΡΠΈ ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΎΡ ΠΠ΅ΡΠΈ.
ΠΠΎ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΠΆΠ΅ 4. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ‘merge branch master …’ Π½Π΅ Π½Π΅ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠΌΡΡΠ»ΠΎΠ²ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ.
ΠΠ»ΡΡ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ΅ ΠΎΡΠ²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅, ΡΠΎΠΆΠ΅ Π½ΠΈΠΊΠΎΠΌΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎΠ΅.
ΠΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΏΠΎΠ΄ΡΡΠ½ΡΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ ΠΠ΅ΡΠΈ Π² ΡΠΎΠΉ ΠΆΠ΅ Π²Π΅ΡΠΊΠ΅, ΠΌΡ Π½Π΅ ΡΠ»ΠΈΠ²Π°Π»ΠΈ ΠΎΠ΄Π½Ρ Π²Π΅ΡΠΊΡ Π² Π΄ΡΡΠ³ΡΡ (Ρ Π½Π°ΡΠ΅ΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ).
Π ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΠΊΠ°ΠΊΡΡ ΠΊΡΡΡ Ρ
Π»Π°ΠΌΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²Π΅ΡΠΊΠ° ΠΏΠΎΡΠ»Π΅ Π΄Π΅ΡΡΡΠΊΠ° ΡΠ°ΠΊΠΈΡ
git pull.
ΠΠ°ΠΊ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ?
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΡΠΎΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠΎΠ±ΡΠ°Π»ΠΈΡΡ Π΄Π΅Π»Π°ΡΡ git pull.
Π ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π΅Π³ΠΎ ΡΡΡΡ ΠΈΠ½Π°ΡΠ΅
git pull —rebase origin master.
Π’Π΅ΠΏΠ΅ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ
ΠΡΠ»ΠΈΡΠ½ΠΎ! Π’ΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ. ΠΠΎΠΌΠΌΠΈΡ ΠΎΡ ΠΠ΅ΡΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠ°Π·Ρ Π·Π° initial, ΠΊΠΎΠΌΠΌΠΈΡ ΠΎΡ ΠΠ°ΡΠΈ ΡΠ°ΠΌΡΠΉ ΡΠ²Π΅ΠΆΠΈΠΉ.
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΡΠΈΡΡ Π²Π΅ΡΠΊΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.
git push origin master
ΠΡΠΎΡΡΠΎ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅Π³Π°ΡΡ, Π·Π°Π±ΡΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π·Π½Π°ΡΡ ΠΎΠ± ΡΡΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
ΠΡΠ»ΠΈ Π²ΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΡΡΡΡ Π΄Π΅Π»Π°ΡΡ git pull —rebase, ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡΡΠΈΠ΅ Π²Π΅ΡΠΊΠΈ Π±ΡΠ΄ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠΈΡΠ΅.
ΠΠΎ ΡΡΠΎ ΠΌΡ ΠΎΡΠ²Π»Π΅ΠΊΠ»ΠΈΡΡ, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΠ°ΡΡ ΠΏΡΠΈΡΡΡΠΏΠ°Π΅Ρ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Π½Π°Π΄ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄Π²Π°Π»Π° ΠΈ Π±Π»Π°Π³ΠΎΡΠ°Π·ΡΠΌΠ½ΠΎ Π·Π°Π²ΠΎΠ΄ΠΈΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ
git checkout -b new-footer
ΠΠ°Π»ΡΡΠ΅ ΠΠ°ΡΡ Π΄Π΅Π»Π°Π΅Ρ Π² Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ
ΠΠΎ Π·Π° ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΡΡΡΡΠΉ ΠΠ΅ΡΡ ΡΠΆΠ΅ ΡΡΠΏΠ΅Π» Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ Π² ΠΌΠ°ΡΡΠ΅Ρ ΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΎ ΡΠ΅ΠΊΡΡΡ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅.
ΠΠ°ΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈ ΠΎΠ½ ΠΏΠΎΠΌΠ½ΠΈΡ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡ Π² ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ ΡΠ²Π΅ΠΆΠΈΠΉ ΠΌΠ°ΡΡΠ΅Ρ,
Π΄Π°Π±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ° Π½Π΅ Π»ΠΎΠΌΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΠ΅ΡΠΈ (ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ).
ΠΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π° ΠΌΠ°ΡΡΠ΅Ρ, ΡΡΡΠ³ΠΈΠ²Π°Π΅Ρ ΡΡΠΎΡ ΡΠ²Π΅ΠΆΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ (ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠ΅ΡΠ΅Π· git pull —rebase)
ΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ, ΡΡΠΎΠ±Ρ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π»ΠΈΡΡ Π² new-footer.
git checkout master
git pull —rebase origin master
git checkout new-footer
ΠΠ°Π΄Π°ΡΠ° ΠΠ°ΡΠΈ — Π²Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ ΠΌΠ°ΡΡΠ΅Ρ Π² ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ new-footer.
ΠΠ°ΡΡ Π΄Π΅Π»Π°Π΅Ρ
git merge master
ΠΈ Π²ΠΈΠ΄ΠΈΡ ΡΡΠΎ
Π§ΡΠΎ-ΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ. ΠΠΎΠ΄ΡΡΠ½ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ ΠΎΠΏΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π»ΠΈΡΠ½ΠΈΠΉ ‘merge branch’.
ΠΠ°Π΄Π½ΠΎ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π½Π΅ Π²ΠΈΠ΄ΡΡ Π² ΡΡΠΎΠΌ Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΠ»ΠΎΡ
ΠΎΠ³ΠΎ ΠΈ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ,
ΡΡΠΎ Ρ
ΠΎΡΡΡ Π·Π½Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π² ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ Π²Π»ΠΈΠ²Π°Π»ΡΡ ΠΌΠ°ΡΡΠ΅Ρ.
Π ΠΊΠΎΠ³Π΄Π° ΠΌΠ°ΡΡΠ΅Ρ Π·Π°Π»ΠΈΠ²Π°Π»ΡΡ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°Π·. Π Π² ΡΡΠ΅ΡΠΈΠΉ. ΠΡ Π²Ρ ΠΏΠΎΠ½ΡΠ»ΠΈ.
ΠΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ, Π΅ΡΠ»ΠΈ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ
ΠΌΠ½Π΅ ΠΏΠΎΡΡΠ½ΡΡ — Π·Π°ΡΠ΅ΠΌ?
ΠΠΎ ΠΎΡΡΠ°Π²ΠΈΠΌ ΠΏΠΎΠΊΠ° ΡΠ°ΠΊ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅.
ΠΠ°ΡΡ Π΄Π΅Π»Π°Π΅Ρ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ΄Π²Π°Π»Π΅
ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ ΡΠ΅ΡΡΠΈΡΡΠ΅Ρ ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ, ΡΠ±Π΅ΠΆΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ Ρ
ΠΎΡΠΎΡΠΎ, ΠΈ ΡΠ»ΠΈΠ²Π°Π΅Ρ Π΅Π΅ Π² ΠΌΠ°ΡΡΠ΅Ρ.
git checkout master
git merge —no-ff new-footer
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, Ρ Π΄Π΅Π»Π°Ρ git merge Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ —no-ff, ΡΡΠΎΠ±Ρ Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅ Π±ΡΠ»ΠΈ Π²ΠΈΠ΄Π½Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π² Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠ΅.
Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°, ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π΅ Ρ ΠΈ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡ.
Π ΠΈΡΠΎΠ³Π΅ Π½Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ
ΠΠ°ΠΏΠΎΠΌΠ½Ρ, Π² Π²Π΅ΡΠΊΠ΅ new-footer Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ 2 ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΎΡ ΠΠ°ΡΠΈ.
ΠΠ΄Π΅ΡΡ ΠΆΠ΅ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π»ΠΈΡΠ½ΠΈΠΉ merge ΠΈ Π»ΠΈΡΠ½ΡΡ ΡΠ²ΡΠ·Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½ΠΈ ΠΎ ΡΠ΅ΠΌ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΡ.
ΠΠ΅Π³ΠΊΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠΎΡ Π±Π°ΡΠ΄Π°ΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ²ΠΎΡΠΈΡΡΡΡ ΠΏΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΌΠ΅ΡΠ΄ΠΆΠ°Ρ
Π² Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡΡΠΈΡ
Π²Π΅ΡΠΊΠ°Ρ
.
git rebase Π΄Π°Π΅Ρ Π½Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠΈΡΡΠΎΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΡΠ΅ ΠΈΡΠΏΡΠ°Π²ΠΈΠΌ ΠΈ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΡΠΎΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠΎΠ±ΡΠ°Π»ΠΈΡΡ ΠΌΠ΅ΡΠ΄ΠΆΠΈΡΡ ΠΌΠ°ΡΡΠ΅Ρ Π² Π½Π°ΡΡ Π²Π΅ΡΠΊΡ
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΠΊ
git rebase master
ΠΈ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ
ΠΠ°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡΡΡΠ΅! ΠΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ½ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ new-footer ΠΎΡΠ²Π΅ΡΠ²ΠΈΠ»Π°ΡΡ ΠΎΡ ΠΌΠ°ΡΡΠ΅ΡΠ° ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ.
ΠΠ°ΡΡ Π΄Π΅Π»Π°Π΅Ρ Π²ΡΠΎΡΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ
Π Π½Π°ΠΊΠΎΠ½Π΅Ρ ΠΠ°ΡΡ ΡΠ»ΠΈΠ²Π°Π΅Ρ Π²Π΅ΡΠΊΡ new-footer Π² ΠΌΠ°ΡΡΠ΅Ρ ΠΈ ΡΠ΄Π°Π»ΡΠ΅Ρ Π΅Π΅.
git checkout master
git merge —no-ff new-footer
git branch -d new-footer
ΠΡΠ»ΠΈΡΠ½Π°Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°. ΠΡ Π²ΠΈΠ΄ΠΈΠΌ 2 ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΠ°ΡΠΈ ΠΈ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ΄Π΅Π»Π°Π½Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅.
Π Π΅ΡΠ»ΠΈ ΠΠ°ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π» Π±Ρ Π½Π°ΡΠ°Π»ΠΎ ΡΠ²ΠΎΠΈΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΠΊΠΈ, Π° Π½Π΅ ΡΠ²ΠΎΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΠΎ ΠΈΡΡΠΎΡΠΈΡ Π²ΡΠ³Π»ΡΠ΄Π΅Π»Π° Π±Ρ Π΅ΡΠ΅ Π»ΡΡΡΠ΅ :-)
ΠΠ±ΡΠ°ΡΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΡΠΈΡ —no-ff. git merge ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ½ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, Π½Π΅ Π΄Π΅Π»Π°Ρ ΠΌΠ΅ΡΠ΄ΠΆΠ°.
ΠΡΠ»ΠΈ ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΏΡΠΎΡΡΠΎ git merge new-footer, ΡΠΎ ΠΈΡΠΎΠ³ΠΎΠ²Π°Ρ ΠΈΡΡΠΎΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠΉ
Π― Π»ΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, Π½ΠΎ Π·Π΄Π΅ΡΡ ΡΠΆΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΏΡΠΈΠ½ΡΡΡ Π² ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
P.S. ΠΡΡΡ Π½Π΅Π³Π»Π°ΡΠ½ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ. ΠΠ΅Π· ΠΎΠΏΠ°ΡΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ git rebase ΡΠΌΠ΅Π»ΠΎ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π² ΡΠ²ΠΎΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅ ΠΎΠ΄ΠΈΠ½.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ Π²Π΅ΡΠΊΠ΅ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ Π²Π°Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°, ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΡΠ΅ΡΠ΅Π· merge.
ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ rebase ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΈ ΠΏΡΡΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ —force.
ΠΠΎ ΡΡΠΎ ΡΠΆΠ΅ Π΄ΡΡΠ³Π°Ρ ΠΈΡΡΠΎΡΠΈΡ.
P.P.S. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΊΡΠΎΠΌΠ΅ Π½Π΅Π·Π½Π°Π½ΠΈΡ/Π½Π΅ΡΠΌΠ΅Π½ΠΈΡ, Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° Π±Π°Π½Π°Π»ΡΠ½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ rebase.
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π³ΠΈΡΠΎΠΌ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Π»ΡΠ±ΠΈΠΌΠΎΠΉ IDE.
Π’Π°ΠΊ Π²ΠΎΡ ΡΠ°ΡΡΠΎ ΡΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ git pull Π² IDE ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ ΡΡΠ°Π²ΠΈΡ ΠΎΠΏΡΠΈΡ —rebase.
ΠΡΠΆΠ½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠΊΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΊΠ±ΠΎΠΊΡ.
Π git merge Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π±Π»ΠΈΠΆΠ΅ Π² ΠΌΠ΅Π½Ρ, ΡΠ΅ΠΌ git rebase.
Π Π²ΡΠ΅.
Π― Π΄ΠΎ ΡΠΈΡ
ΠΏΠΎΡ Π²ΡΠΏΠΎΠΌΠΈΠ½Π°Ρ Π΄ΠΎΠ±ΡΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΈΠΌΠ»ΠΈΠ΄Π° Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠΎΡΠ»ΡΡ
ΡΠ°Π±ΠΎΡ,
ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΠΏΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π³ΠΈΡΠΎΠΌ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅.
ΠΡΠΈΠ²ΡΠΊΠ°Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΠΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°.
Π― Π½Π΅ ΠΏΡΠΈΠ·ΡΠ²Π°Ρ ΠΊ ΡΠ°Π½Π°ΡΠΈΠ·ΠΌΡ ΠΈ Π½Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΎΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
ΠΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ Π΄Π΅Π»Π°ΡΡ Π² IDE, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΏΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ.
ΠΠΎ ΡΠ²Π΅ΡΡΡ, ΡΡΠΎ 90-95% ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π³ΠΈΡΠΎΠΌ Π±ΡΡΡΡΠ΅Π΅ ΠΈ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅.
Π ΡΠΎΠ³Π΄Π° ΡΠ°ΠΌΠΈ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΠΏΠ°Π΄ΡΡ Π²ΠΎΠΏΡΠΎΡΡ «ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ git pull —rebase ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π΄Π΅Π»Π°ΡΡ Π² phpStorm»
ΠΠ»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ Ρ ΡΠΌΠ½ΡΠΉ, ΡΠΎΠ²Π΅ΡΡΡ ΡΡΠ°ΡΡΡ ΠΠ°ΠΊ Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π» Π±ΠΎΡΡΡΡΡ ΠΈ ΠΏΠΎΠ»ΡΠ±ΠΈΠ» git
Π Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠΏΡΠΎΡ Π½Π°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ
ΠΡΠ΅ ΡΡΠ°ΡΡΠΈ ΠΎ git
ΠΠ½ΠΎΠ½ΡΡ ΡΡΠ°ΡΠ΅ΠΉ, ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ², vue, ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π°, php, Π³ΠΈΡΠ°.
ΠΡΡΠΎΡΠΈΠΈ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ Π°ΠΉΡΠΈ ΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.
ΠΠ°ΠΊ ΠΠ°ΠΌ ΡΡΠ°ΡΡΡ? ΠΡΠ΅Π½ΠΈΡΠ΅!
ΠΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΎΡΡ? ΠΠΎΠ΄Π΅Π»ΠΈΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ π
Please enable JavaScript to view the comments powered by Disqus.
Π·Π°ΡΠ΅ΠΌ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
Git Merge ΠΈ Git Rebase ΠΏΡΠ΅ΡΠ»Π΅Π΄ΡΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΡΠ΅Π»Ρ. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ. Π₯ΠΎΡΡ ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ ΡΠ΅Π»Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°Ρ, ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π±ΠΎΡΡ ΡΠ°Π·Π½ΡΠ΅.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Π²Ρ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Rebase, Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡ Merge. Π ΡΡΠΎΠΌ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ.
Git Merge
Π‘Π»ΠΈΡΠ½ΠΈΠ΅ β ΠΎΠ±ΡΡΠ½Π°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠΎΠ·Π΄Π°Π½Ρ Π»ΠΈ Π²Π΅ΡΠΊΠΈ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΠ»ΠΈ ΠΏΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. Π‘Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π²Π΅ΡΠΊΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΈΡ Ρ ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ. Π ΡΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»Π΅Π²Π°Ρ Π²Π΅ΡΠΊΠ°. ΠΡΡΠΎΡΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π²Π΅ΡΠΎΠΊ ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΠ»ΡΡΡ:
- ΠΏΡΠΎΡΡΠΎΡΠ°;
- ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΈ Ρ ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ;
- ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²Π΅ΡΠΊΠΈ.
ΠΠΈΠ½ΡΡΡ:
- ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π° (Π·Π°Π³ΡΡΠ·Π½Π΅Π½Π°) ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²;
- ΠΎΡΠ»Π°Π΄ΠΊΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ git bisect ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅.
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ
Π‘Π»Π΅ΠΉΡΠ΅ Π²Π΅ΡΠΊΡ master Π² Π²Π΅ΡΠΊΡ feature, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ checkout ΠΈ merge.
ΠΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ Β«Merge commitΒ» Π² Π²Π΅ΡΠΊΠ΅ feature, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΡΡΠΎΡΠΈΡ ΠΎΠ±Π΅ΠΈΡ Π²Π΅ΡΠΎΠΊ.
Git Rebase
Rebase β Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ. Rebase ΡΠΆΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠ΄ΠΈΠ½ Β«ΠΏΠ°ΡΡΒ». ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅Ρ ΠΏΠ°ΡΡ Π² ΡΠ΅Π»Π΅Π²ΡΡ Π²Π΅ΡΠΊΡ.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΡΡΠΎΡΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΡΡΠΎΡΠΈΡ.
ΠΠ»ΡΡΡ:
- Π£ΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΈΡΡΠΎΡΠΈΡ
- Π£ΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ
- ΠΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Π·Π°Π½ΡΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ ΠΈ Π²Π΅ΡΠΊΠ°Ρ
- ΠΡΠΈΡΠ°Π΅Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π΄Π΅Π»Π°Ρ ΠΈΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ DevOps ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠΈΠ½ΡΡΡ:
- Π‘ΠΆΠ°ΡΠΈΠ΅ ΡΠΈΡ Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ
- ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΠ°ΡΠ½ΡΠΌ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅
- ΠΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ
- ΠΠ»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌΠΈ Π²Π΅ΡΠΊΠ°ΠΌΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΡ. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π²Π΅ΡΠΎΠΊ, ΠΈΠΌΠ΅ΡΡΠΈΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΠΈΠΌΡ, ΠΊΠ°ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ, ΠΈ ΡΡΠΎ ΡΠΆΠ°ΡΠ½ΠΎ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, Π° ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΠ΅!
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ Π²Π΅ΡΠΊΡ feature Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ Π²ΡΡ Π²Π΅ΡΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π³Π»Π°Π²Π½ΡΡ Π²Π΅ΡΠΊΡ. ΠΡΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅.
ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΡΠΈ ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ Π² Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ. ΠΡΠΎ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ ΠΈΡΡΠΎΡΠΈΠΈ Π΄ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠΊΠΈ feature Π² master.
ΠΡΠΎ ΠΎΡΠΊΡΠΎΠ΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠ² Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½Ρ.
ΠΡΠΎ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π²Π΅ΡΠΊΠ° ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ. Π£ΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠ°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊ Π·Π°Ρ ΠΎΡΠΈΡΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ fixup, squash, edit, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ?
Π’Π°ΠΊ ΡΡΠΎ ΠΆΠ΅ Π»ΡΡΡΠ΅? Π§ΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ ΡΠΊΡΠΏΠ΅ΡΡΡ?
Π’ΡΡΠ΄Π½ΠΎ ΠΏΡΠΈΠ½ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·Π½ΡΠ΅. ΠΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ ΠΈ ΡΡΠ°Π΄ΠΈΡΠΈΠΉ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΡΠΈΠ½ΠΈΠΌΠ°ΠΉΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Git. ΠΠ»Ρ Π²Π°Ρ Π²Π°ΠΆΠ½Π° ΠΏΡΠΎΡΡΠΎΡΠ° ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ, Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΎ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠ΅?
Π§ΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Ρ?
ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠ»ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, ΠΏΡΠΈΠΌΠ΅Π½ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅. Π§ΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΈΡΡΡΡ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΡΠ°Π·ΡΠΌΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Rebase.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Rebase:
- ΠΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ: Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π΄Π΅Π»ΠΈΠ»ΠΈΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ Ρ ΠΊΠ΅ΠΌ-Π»ΠΈΠ±ΠΎ Π΅ΡΠ΅. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ²ΠΎΡ ΠΈΡΡΠΎΡΠΈΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π»ΠΈΡΠ½Π°Ρ Π²ΠΈΠ»ΠΊΠ° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ rebase Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ»ΠΈΡΡ Π² ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ.
- ΠΠ°Ρ ΠΊΠΎΠ΄ Π³ΠΎΡΠΎΠ² ΠΊ ΡΠ΅Π²ΡΡ: Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΏΡΠ»Π» ΡΠ΅ΠΊΠ²Π΅ΡΡ. ΠΡΡΠ³ΠΈΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡ Π²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΡΡΠ³ΠΈΠ²Π°ΡΡ Π΅Π΅ ΠΊ ΡΠ²ΠΎΠ΅ΠΉ Π²ΠΈΠ»ΠΊΠ΅ Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π²ΡΡ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Β«ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°ΡΡΒ» ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π²Π΅ΡΠΊΡ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΠΏΡΠ»Π» ΡΠ΅ΠΊΠ²Π΅ΡΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΠΏΠΎΠ»ΠΎΠΌΠΊΡ ΠΈΡΡΠΎΡΠΈΠΈ.
- Π Π΅Π²ΡΡ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΈ Π³ΠΎΡΠΎΠ²ΠΎ ΠΊ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π² ΡΠ΅Π»Π΅Π²ΡΡ Π²Π΅ΡΠΊΡ. ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ! ΠΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ feature. Π£ΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ fetch-merging ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΡΠΎ Π²Π°Ρ ΡΠ°Π½Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ. ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΈ ΡΠ±ΡΠΎΡΠΈΡΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΈ ΡΡΠΈ Π½Π°Π΄ΠΎΠ΅Π΄Π»ΠΈΠ²ΡΠ΅ Β«ΠΏΠ΅ΡΠ΅Π΄Π΅Π»ΠΊΠΈΒ» ΠΈ Β«ΡΠ»ΠΈΡΠ½ΠΈΠ΅Β» ΡΠ»ΠΈΠ²Π°ΡΡΡΡ Π² Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΠ΅Π»Π΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ²Π½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ Π΄Π»Ρ ΡΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ½ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΡΡΠΈΠ³Π»Π° master.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ Ρ ΠΎΡΡ ΠΈ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ, Π½ΠΎ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Merge ΠΈ Rebase. Π£Π²Π΅ΡΠ΅Π½, Π²Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π°ΠΌ.ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅:
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ An Introduction to Git Merge and Git Rebase: What They Do and When to Use Them ΠΎΡ Digital Skynet π
ΠΠ΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Merge ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π² Git / Π₯Π°Π±Ρ
ΠΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠΈΡΠ°ΡΠ΅Π»ΡΠΌ «Π₯Π°Π±ΡΠ°Ρ
Π°Π±ΡΠ°» ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ «Painless Merge Conflict Resolution in Git»
ΠΈΠ· Π±Π»ΠΎΠ³Π° blog.wuwon.id.au.
Π ΠΌΠΎΠ΅ΠΉ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅, ΡΠ°ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»ΠΎ ΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ git Π²Π΅ΡΠ²Π΅ΠΉ (branch). ΠΡΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Π΅ΡΠ²ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΡΠ΅Π»ΠΈΠ·ΠΎΠ², Π²Π΅ΡΠ²ΠΈ Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ API Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΠΈΠ»ΠΈ Π²Π΅ΡΠ²ΠΈ Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ. ΠΡΠ³ΠΊΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅ΡΠ²Π΅ΠΉ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ Git ΡΠ°ΠΊ ΠΈ ΡΠΎΠ±Π»Π°Π·Π½ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π²Π΅ΡΠ²Π΅ΠΉ, ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π±ΡΠ΅ΠΌΡ ΠΎΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π²Π΅ΡΠ²Π΅ΠΉ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΎΡΡΡΠΈΠΌΡΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠ΅ ΡΡΠΈ Π²Π΅ΡΠ²ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ Π΄Π΅Π»Π°ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ (merge) Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π²Π΅ΡΠ²ΡΠΌΠΈ.
Π‘Π»ΠΈΡΠ½ΠΈΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Ρ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΡΠΈΠ±ΠΊΠ° ΡΠ΄Π΅Π»Π°Π½Π½Π°Ρ ΠΏΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ Π±ΠΎΠ»ΠΈ, Π½Π΅ΠΆΠ΅Π»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ° ΡΠ΄Π΅Π»Π°Π½Π½Π°Ρ ΠΏΡΠΈ ΠΏΡΠΎΡΡΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΡΠ΅Π΄ΠΊΠΎΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ Π²Π΅ΡΠ²Π΅ΠΉ. ΠΠ°ΠΆΠ΅ ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠ²Π΅ΠΉ, Π±ΡΠ²Π°Π΅Ρ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°Π½Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°. ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΎΡΠΌΠ΅Π½Π° Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡΡΡ Π² Π±ΠΎΠ»ΡΡΡΡ Π³ΠΎΠ»ΠΎΠ²Π½ΡΡ Π±ΠΎΠ»Ρ. Π-ΡΡΠ΅ΡΡΠΈΡ , Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΡΠΆΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΌΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Π²Π΅ΡΠ²Π΅ΠΉ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Ρ.Π΅. Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π» Ρ ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ. Π ΡΡΡ ΠΎΠΌ ΠΎΡΡΠ°ΡΠΊΠ΅, ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ, Π΅Ρ ΡΡΡΠ΄Π½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈ ΡΡΡΠ΄Π½ΠΎ Π½Π°ΠΉΡΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π½Π° ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠ²Π΅ΠΉ, ΠΎΠΊΡΠΏΠΈΡΡΡ Ρ Π»ΠΈΡ Π²ΠΎΠΉ.
Π£Π΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π½ΠΎ Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΠΉ, Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΎΡΠ½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π§Π°ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΏΡΠΎΡΡΠΎ Π½Π°Π΄Π΅Π΅ΡΡΡ ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° git merge ΡΠ΄Π΅Π»Π°Π΅Ρ Π·Π° Π½Π΅Π³ΠΎ Π²ΡΡ ΡΠ°Π±ΠΎΡΡ. ΠΠΎ ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ, ΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π±Π΅Π³Π»ΠΎΠΌ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ ΠΊΠΎΠ΄Π° Π²ΠΎΠΊΡΡΠ³ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°, ΠΈ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎΠΌ ΡΠ³Π°Π΄ΡΠ²Π°Π½ΠΈΠΈ ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π°Π½Π½ΡΠΉ ΠΊΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅ΠΉ Π΄ΡΡΠ³ΠΎΠ³ΠΎ.
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Π½Π°Π΄Π΅ΡΡΡ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎ ΡΠΎΡΠ½ΡΠΌ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΡΠΏΠ°Π΄Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ ΡΠ°ΠΌ ΡΠ³Π°Π΄ΡΠ²Π°ΡΡ.
ΠΠΎΠ»ΡΠ±ΡΠ΅ Π ΠΎΠ·Ρ (Roses are Blue)
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ ΡΡΠΎ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΠΎΡΡΡΠΈΠ»ΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΡΠΌΡ Π² ΠΎΡΠ²Π΅Π΄ΡΠ½Π½ΠΎΠΌ Π΄Π»Ρ ΡΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. (ΠΠ°ΠΊΠΎΠΉ ΠΊΠΎΡΠΌΠ°Ρ!) Π Π²Π°ΠΌ Π΄ΠΎΠ²Π΅ΡΠΈΠ»ΠΈ ΡΠ°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ β Π΄Π΅Π»Π°ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠΈΠΊΡΠΎΠ² ΠΈΠ· Π²Π΅ΡΠΊΠΈ master Π² Π²Π΅ΡΠΊΡ beta. ΠΡΠ°ΠΊ, Π²Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ΡΡ Π² Π²Π΅ΡΠΊΡ beta ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ git merge master
Auto-merging roses.txt
CONFLICT (content): Merge conflict in roses.txt
Automatic merge failed; fix conflicts and then commit the result.ΠΠ³ΠΎ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ. ΠΡ ΡΠ΅ΡΠ°Π΅ΡΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ°ΠΉΠ» Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ»Π°Π΅ΡΡΡ git:
$ cat roses.txt
<<<<<<< HEAD
roses are #ff0000
violets are #0000ff
all my base
are belong to you
=======
Roses are red,
Violets are blue,
All of my base
Are belong to you.
>>>>>>> master
(Listing 1)ΠΠ°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ! ΠΠ΅ΡΡ ΡΠ°ΠΉΠ», ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Listing 1, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ°ΠΉΠ»Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ? ΠΠ±Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ. ΠΠ΅ΡΡ Π½ΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π² Ρ Π°ΠΊΠ΅Ρ-ΡΡΠΈΠ»Π΅ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Π² ΡΡΠΈΠ»Π΅ HTML ΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΡΠ½ΡΡ Π±ΡΠΊΠ². ΠΠΈΠΆΠ½ΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎ, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΠΈ ΠΈ Π·Π°Π³Π»Π°Π²Π½ΡΡ Π±ΡΠΊΠ².
ΠΡΠ»ΠΈ Π±Ρ ΡΡΠΎ Π±ΡΠ» Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ, Π²Ρ Π±Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈ ΠΏΠΎΠΊΠΎΠ½ΡΠΈΡΡ Ρ ΡΡΠΈΠΌ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ. ΠΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ Π²Π°ΡΠ° ΠΏΠΎΡΠΌΠ°, Π²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠΈΡΠ°Π»ΠΈ ΡΡΡ ΠΏΠΎΡΠΌΡ ΡΠ°Π½ΡΡΠ΅, Π½Π΅ Π±ΡΠ»ΠΈ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½Ρ Π·Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈ Π²Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ ΡΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ Π²Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΡ-ΡΠΎ ΡΡΠΆΡΠ»Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΊΠ°Π½ΡΡΡ Π² Π½Π΅Π±ΡΡΠΈΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ Π²Π°Ρ Π²ΡΡ ΠΆΠ΅ Π½Π°Π·Π½Π°ΡΠΈΠ»ΠΈ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ ΡΡΠΈΡ Π²Π΅ΡΠΎΠΊ. Π§ΡΠΎ ΠΆΠ΅ Π²Π°ΠΌ Π΄Π΅Π»Π°ΡΡ?
ΠΠ°Π·Π°Π΄ ΠΊ ΠΠ°Π·Π΅ (Back to Base)
Π₯ΠΈΡΡΠΎΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Listing 1 Π½Π΅ Π΄Π°ΡΡ Π²Π°ΠΌ ΠΏΠΎΠ»Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ ΡΡΠ°ΡΡΠ²ΡΡΡ ΡΠ΅ΡΡΡΠ΅ Π²Π°ΠΆΠ½ΡΡ ΡΠ°ΡΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ (ΡΠΎΡΡΠΎΡΠ½ΠΈΡ), ΡΡΠΈ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°. Π ΡΠ»ΡΡΠ°Π΅ Listing 1, Git ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ» Π²Π°ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΡΡΠΈ ΡΠ΅ΡΡΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ:
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΡ (B) ΠΈ Β© ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ (head) Π²Π΅ΡΠΎΠΊ master ΠΈ beta ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΈ Π΄Π²Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ°ΠΊ ΡΠ°Π· ΡΠ°ΠΊΠΈ ΠΈ ΠΎΡΡΠ°ΠΆΠ΅Π½Ρ Π² Listing 1. Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (D) ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΡΠΎ ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ/ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ (Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Git Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (D)). Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (Π) Π½Π° ΡΠ°ΠΌΠΎΠΌ Π²Π΅ΡΡ Ρ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π±Π°Π·Ρ (ΠΎΡΠ½ΠΎΠ²Ρ) ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠΎΠΊ master ΠΈ beta. ΠΠ°Π·Π° ΡΠ»ΠΈΡΠ½ΠΈΡ (A) ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΎΠ±ΡΠΈΠΉ ΠΏΡΠ΅Π΄ΠΎΠΊ Π²Π΅ΡΠΎΠΊ master ΠΈ beta, ΠΈ ΠΏΠΎΠΊΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ ΡΡΠΎ ΡΡΠΎ Π±Π°Π·Π° ΡΠ»ΠΈΡΠ½ΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Π°. ΠΠ°ΠΊ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (A) ΠΈΠ³ΡΠ°Π΅Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠΎΠ»Ρ Π² ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ². ΠΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΠ°Π·ΠΈΠ» Π΄Π΅Π»ΡΡΡ 1 ΠΈ 2, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ (A)-(B), ΠΈ (A)-Β© ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΠ½Π°Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (A), (B) ΠΈ Β© Π΄Π΅Π»ΡΡΡ 1 ΠΈ 2 ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ (Π²ΡΡΠΈΡΠ»Π΅Π½Ρ). ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π΅Π»ΡΡΡ 1 ΠΈ 2 ΠΌΠΎΠ³ΡΡ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ Π±ΡΠ΄Π΅ΠΌ ΡΡΠΈΡΠ°ΡΡ ΡΡΠΎ Π²ΡΠ΅ Π΄Π΅Π»ΡΡΡ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½Ρ.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (D), Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠΎ ΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ. Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (D) Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Π½Π΅ΡΡΠ½Π½ΡΡ Π² Π²Π΅ΡΠΊΡ master ΠΈ beta ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. Π’.Π΅. Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ Π΄Π΅Π»ΡΡ 1 ΠΈ 2. ΠΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠ° Π½Π° ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ ΠΈ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π° ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠΎΠ±ΡΡ ΡΠ»ΡΡΠ°Π΅Π² ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΡΡΡ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡ Π½Π°ΡΠ»Π°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ (ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΠΈΠ΅ΡΡ) ΡΠ°ΡΡΠΈ ΡΠ°ΠΉΠ»Π°. Π ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π²Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠΌΠΎΡΡ ΠΌΠ°ΡΠΈΠ½Π΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ (D), ΠΏΡΡΡΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π΄Π΅Π»ΡΡ 1 ΠΈ 2.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΡΠ»ΠΈΡΠΈΠΉ (Identifying the Differences)
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π½Π΅ΡΡΠ½Π½ΡΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΡΡ Π²Π΅ΡΠΊΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π±Π°Π·Π° ΡΠ»ΠΈΡΠ½ΠΈΡ, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (A). Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π±Π°Π·Π΅ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΎΠΏΡΠΈΠΈ merge.conflictstyle Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ diff3
$ git config merge.conflictstyle diff3ΠΠΎΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΎΠΏΡΠΈΠΈ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π·Π°Π½ΠΎΠ²ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ (git reset —hard; git merge master) ΠΈ ΠΏΡΠΎΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡΡΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ» Π΅ΡΡ ΡΠ°Π·:
$ cat roses.txt
<<<<<<< HEAD
roses are #ff0000
violets are #0000ff
all my base
are belong to you
|||||||
roses are red
violets are blue
all my base
are belong to you
=======
Roses are red,
Violets are blue,
All of my base
Are belong to you.
>>>>>>> master
(Listing 2)Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠ΅ΡΠΈΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π°Π·ΠΎΠΉ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (A). ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΠΈΠ΄Π½Ρ ΠΊΠ°ΠΊ Π½Π° Π»Π°Π΄ΠΎΠ½ΠΈ: Π² Π²Π΅ΡΠΊΠ΅ beta (HEAD) ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΈΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠ² Π±ΡΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ Π½Π° HTML ΠΊΠΎΠ΄Ρ, Π° Π² Π²Π΅ΡΠΊΡ master Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠ°ΠΏΠΈΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΡ. ΠΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΡΡΠΈΡ Π·Π½Π°Π½ΠΈΡΡ , ΠΌΡ ΡΠ΅ΠΏΠ΅ΡΡ Π·Π½Π°Π΅ΠΌ ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΠΊΠ°ΠΏΠΈΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΡ ΠΈ HTML ΠΊΠΎΠ΄Ρ ΡΠ²Π΅ΡΠΎΠ².
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Π½Π° ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ. ΠΠΎ Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΡΡΡΠ΅.
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π‘Π»ΠΈΡΠ½ΠΈΠ΅ (GUI Merging)
Π₯ΠΎΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° ΡΠ»ΠΈΡΠ½ΠΈΡ Π΄Π΅Π»Π°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Π² ΠΏΡΠΎΡΡΡΡ ΡΠ»ΡΡΠ°ΡΡ , Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π΄ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ. Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ. ΠΠΎΠΉ Π²ΡΠ±ΠΎΡ ΠΏΠ°Π» Π½Π° ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Python ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ meld, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄ΠΎΠΉΡΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π² ΡΡΡΡ -ΠΊΠΎΠ»ΠΎΠ½ΠΎΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° (ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½), ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ git ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Π»ΡΡ ΡΡΠΎ Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ, Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ git mergetoolΠΠΎΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΠΎΠΏΡΠΎΡ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Ρ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ, ΠΏΡΠΎΡΡΠΎ Π²Π²Π΅Π΄ΠΈΡΠ΅ meld ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Enter. ΠΠΎΡ ΠΊΠ°ΠΊ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ (ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΠΎΠΏΡΠΈΡ merge.conflictstyle Π½Π΅ Π±ΡΠ»Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π°):
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π±ΠΎΠΊ ΠΎ Π±ΠΎΠΊ, ΠΎΠ½Π° Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π½ΡΠΆΠ½ΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π² Listing 2. ΠΡ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ Π·Π΄Π΅ΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° Π±Π°Π·Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ (ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (A)), ΡΡΠΎ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠΎ ΡΠ°ΠΉΠ» roses.txt.LOCAL.2760.txt Π² Π»Π΅Π²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ ΠΈ ΡΠ°ΠΉΠ» roses.txt.REMOTE.2760.txt Π² ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ ΠΈ ΡΠ°ΠΉΠ» ΠΏΠΎΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΡΡΠΎ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅. Π’.Π΅. ΠΏΠΎ ΡΡΡΠΈ Π½Π°ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (B), Β© ΠΈ Π½Π΅ΡΠΎΡΡΠΎΡΠ²ΡΠ΅Π΅ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (D), Π½ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (A) ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ…
ΠΡΠ°Π²Π΄Π° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ? ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ, Π² ΡΡΠ°ΡΠΎΠΌ Π΄ΠΎΠ±ΡΠΎΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅:
$ ls -1
roses.txt
roses.txt.BACKUP.2760.txt
roses.txt.BASE.2760.txt
roses.txt.LOCAL.2760.txt
roses.txt.REMOTE.2760.txtΠΠΈΠ΄ΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠΉ Π½Π°Ρ ΡΠ°ΠΉΠ»: roses.txt.BASE.2760.txt. ΠΡΠΎ ΠΈ Π΅ΡΡΡ ΡΠ°ΠΉΠ» Π±Π°Π·Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ. Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ ΠΎΡΡΠ°Π»ΠΎΡΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π½Π°ΠΉΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π½Π΅ΡΡΠ½Π½ΡΠ΅ Π² Π²Π΅ΡΠΊΠΈ master ΠΈ beta, ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π΄Π²ΡΠΌΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ meld:
$ meld roses.txt.LOCAL.2760.txt roses.txt.BASE.2760 &
$ meld roses.txt.BASE.2760 roses.txt.REMOTE.2760.txt &(ΠΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄ΠΌΠ΅ΡΠΈΡΡ ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π·ΡΠΌΠ½ΠΎ, ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ°ΠΉΠ» Π±Π°Π·Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΡΡ Π² Π»Π΅Π²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ Π² ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ , Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΡΡΡΡ -ΠΊΠΎΠ»ΠΎΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π±Π°Π·Π° ΠΎΡΡΠ°ΡΡΡΡ ΠΏΠΎ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅.) Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ β Π΄Π²Π° ΠΎΠΊΠ½Π° ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
ΠΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΡΠΏΡΠ°Π²Π° Π½Π°Π»Π΅Π²ΠΎ ΠΈ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΠ½ΠΎ ΠΊΠ°ΠΊ Π΄Π΅Π½Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΠΊΠ΅. Π’Π°ΠΊ ΠΊΠ°ΠΊ meld Π»ΡΠ±Π΅Π·Π½ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΈΠ» Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ Π΄Π°ΠΆΠ΅ ΠΌΠ΅Π»ΠΊΠΎ Π·Π°ΠΌΠ΅ΡΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΊΠΈ (ΠΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠ³Π° «of» ΠΏΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° Listing 1 ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Listing 2?)
ΠΠΎΠΎΡΡΠΆΠΈΠ²ΡΠΈΡΡ ΡΡΠΈΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ, ΠΌΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΡΡΡΡ -ΠΊΠΎΠ»ΠΎΠ½ΠΎΡΠ½ΠΎΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΎΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΡΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ ΡΡΠΎ Π²Π·ΡΡΡ Π²Π΅ΡΡ ΡΠ΅ΠΊΡΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ Ρ Π±ΠΎΠ»Π΅Π΅ Π²Π΅ΡΠΎΠΌΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ master/REMOTE Ρ.Π΅. beta), ΠΈ ΠΏΠΎΠ²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠ΅ ΠΏΡΠ°Π²ΠΊΠΈ, Ρ.Π΅. Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π² Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ (master). ΠΠΎΡ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ:
Π ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ (All Together Now)
ΠΠ°Π΄Π΅ΡΡΡ, Π²Ρ Π½Π°ΠΉΠ΄ΡΡΠ΅ ΡΡΠΎΡ ΡΡΡΡ -ΠΎΠΊΠΎΡΠ΅ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ², ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΠΊΠ°ΠΊΠΈΠΌ Π½Π°Ρ ΠΎΠΆΡ Π΅Π³ΠΎ Ρ. ΠΠΎ ΡΠΎΠ³Π»Π°ΡΠΈΡΠ΅ΡΡ ΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ meld Π²ΡΡΡΠ½ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ², Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ. ΠΡΡ ΠΎΠ΄, ΡΡΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ git ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΠΎΠ±Ρ Π²ΡΠ΅ ΡΡΠΈ ΠΎΠΊΠ½Π° ΠΎΡΠΊΡΡΠ²Π°Π»ΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git mergetool. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ PATH (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ $HOME/bin/gitmerge), ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
#!/bin/sh
meld $2 $1 &
sleep 0.5
meld $1 $3 &
sleep 0.5
meld $2 $4 $3Π Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π² Π²Π°Ρ ~/.gitconfig ΡΠ°ΠΉΠ»:
[merge]
tool = mymeld
[mergetool "mymeld"]
cmd = $HOME/bin/gitmerge $BASE $LOCAL $REMOTE $MERGEDΠ’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π· Π±ΡΠ΄Π΅ΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git mergetool Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°, ΠΎΡΠΊΡΠΎΡΡΡΡ Π²ΡΠ΅ ΡΡΠΈ ΠΎΠΊΠ½Π°:
ΠΠΊΠ½ΠΎ Π΄ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ BASE ΠΈ LOCAL
ΠΠΊΠ½ΠΎ Π΄ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ BASE ΠΈ REMOTE
ΠΠΊΠ½ΠΎ ΡΡΡΡ
-ΠΊΠΎΠ»ΠΎΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ ΠΏΡΠΈΠ²ΡΠΊΠ½ΠΈΡΠ΅ ΠΊ ΡΠ°ΠΊΠΎΠΌΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΡΡ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ ΠΎΠΊΠΎΠ½, Π²Ρ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΠ°Π» Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ½ΡΠΌ ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌ. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π², Π²Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΡΠΈΠ΄ΡΡΡΡ ΡΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΊΡΡΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠ°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΄ΠΎΠ³Π°Π΄ΡΠ²Π°ΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ Π² ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΈΡΠ°. ΠΠ·-Π·Π° ΡΡΠΎΠΉ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΠΈ, ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΡΠ²ΡΡΠ²ΠΎ ΡΡΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ»ΠΎΡΡ Π² ΡΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π°Π½ΡΡΠΈΠ΅.
ΠΠΎΠ½ΡΡ ΠΎΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°
ΠΠ»Ρ ΡΠ΅Ρ ΠΊΡΠΎ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ tmux ΠΈ n?vim, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΊΡΠΈΠΏΡ gitmerge:
#!/bin/sh
sn=gitmerge
tmux new-session -d -s "$sn" -n "diff3" "nvim -d $2 $4 $3"
tmux split-window -t "$sn:1" -v "nvim -d $2 $1"
tmux split-window -t "$sn:1" -h "nvim -d $1 $3"ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΡ ΠΎΠΏΡΠΈΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ~/.tmux.conf, ΡΠΎ Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π² Π΄Π²ΡΡ
ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
ΡΡΡΠΎΠΊΠ°Ρ
"$sn:1" Π½Π° "$sn:0"
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π² Π²Π°Ρ ~/.gitconfig
[mergetool "gitmerge"]
cmd = $HOME/bin/gitmerge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
[merge]
tool = gitmergeΠΠΎΡΠΊΡΠ»ΠΎΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠΎΠΊΠ° ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌ Π²ΠΎΠΏΡΠΎΡ (Was the merge successful [y/n]?) ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π² ΡΠ΅ΡΡΠΈΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ gitmerge (ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ TMUXPREFIX + s):
ΠΠΈΠ΄ΠΈΠΌ Π½Π°ΡΠ΅ ΡΡΡΡ -ΠΎΠΊΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠΊΡΠ°Π½Π΅. Π¦ΠΈΡΡΠ°ΠΌΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Ρ ΡΠΏΠ»ΠΈΡΡ (panes) tmux’a, Π±ΡΠΊΠ²Π°ΠΌΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΠ΅Π»Π°Π΅ΠΌ ΠΏΡΠ°Π²ΠΊΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°, Ρ.Π΅. ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (D) ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΡΡΠΈΡ tmux’a ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΠΌ ΡΡΠΎ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ.
git rebase master
ΠΠΈΡΠ½ΠΎ Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ ΠΈ ΡΡΠΈΡΠ°Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ Π΄Π΅Π»Π°ΡΡ ΡΠ½Π°ΡΠ°Π»Π° rebase master Π² Π²Π΅ΡΠΊΠ΅ beta, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² master ΠΈ Π΄Π΅Π»Π°ΡΡ git merge beta. Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Π²ΠΎΡΠΊΡΠ»ΠΎΡ Π½Π΅ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΡΡ -ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°.
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π² ΡΠ΅ΡΡΠΈΡ gitmerge
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (B) ΠΈ Β© ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΈΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ:
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π²ΡΠ΅ΠΌ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡΡΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° ΠΏΠΎ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅. ΠΠΈΡΠ½ΠΎ Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π³Π°Π΄Π°Ρ Π° ΡΡΠΎ ΠΆΠ΅ Π²ΡΠ±ΡΠ°ΡΡ «Accept theirs» ΠΈΠ»ΠΈ «Accept yours».
Git Merge | Π£ΡΠ΅Π±Π½ΠΈΠΊ Atlassian Git
Π‘Π»ΠΈΡΠ½ΠΈΠ΅ — ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± Git ΡΠ½ΠΎΠ²Π° ΡΠΎΠ±ΡΠ°ΡΡ ΡΠ°Π·Π²Π΅ΡΠ²Π»Π΅Π½Π½ΡΡ ΠΈΡΡΠΎΡΠΈΡ. ΠΠΎΠΌΠ°Π½Π΄Π° git merge ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π²Π·ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ git branch , ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ
Π² ΠΎΠ΄Π½Ρ Π²Π΅ΡΠΊΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π² ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ. Π’Π΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π°, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π·ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅, Π½ΠΎ ΡΠ΅Π»Π΅Π²Π°Ρ Π²Π΅ΡΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΡΡΠΎΠ½ΡΡΠ° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ.ΠΠΏΡΡΡ ΠΆΠ΅, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ git merge ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ git checkout Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΠΈ ΠΈ git branch -d Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ.
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
Git merge ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Π΅Π΄ΠΈΠ½ΡΡ ΠΈΡΡΠΎΡΠΈΡ. Π Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ git merge ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π²ΡΡ
Π²Π΅ΡΠΎΠΊ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π² ΡΡΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Ρ Π½Π° ΡΡΠΎΠΌ ΡΠ°Π±Π»ΠΎΠ½Π΅ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠ²Π΅ΠΉ.Π ΡΡΠΈΡ
ΡΡΠ΅Π½Π°ΡΠΈΡΡ
git merge ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Π²Π΅ΡΠΎΠΊ, ΠΈ Π½Π°Ρ
ΠΎΠ΄ΠΈΡ ΠΎΠ±ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Git Π½Π°ΠΉΠ΄Π΅Ρ ΠΎΠ±ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΎΠ½ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Β«ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡΒ», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ.
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ Π½ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° Π²Π΅ΡΠΊΠ΅ master . Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ Ρ master .
ΠΡΠ·ΠΎΠ² ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π²Π΅ΡΠΊΠΈ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΡΡ, ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ master .Git Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ»ΠΈΡΠ½ΠΈΡ (ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ Π½ΠΈΠΆΠ΅).
ΠΠΎΠΌΠΌΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Ρ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ ΡΠ΅ΠΌ, ΡΡΠΎ Ρ Π½ΠΈΡ Π΅ΡΡΡ Π΄Π²Π΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ Git ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎΠ»ΡΠ΅Π±Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ. ΠΡΠ»ΠΈ Git ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ , ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉ Π² ΠΎΠ±Π΅ΠΈΡ ΠΈΡΡΠΎΡΠΈΡΡ , ΠΎΠ½ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΡ . ΠΡΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ, ΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ Git ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ ΡΠ»ΠΈΡΠ½ΠΈΡ
ΠΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ»ΠΈΡΠ½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π³ΠΎΠ², ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΏΠ»Π°Π²Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅.
ΠΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ Π²Π΅ΡΠ²Ρ
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ git status , ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ HEAD ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΠ²Ρ ΠΏΡΠΈΠ΅ΠΌΠ° ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ git checkout , ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ Π²Π΅ΡΠ²Ρ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ git checkout master.
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ°Ρ Π²Π΅ΡΠ²Ρ ΠΈ Π²Π΅ΡΠ²Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ git fetch , ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ.ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ±ΠΎΡΠΊΠΈ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π² Π²Π΅ΡΠΊΠ΅ master Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² git pull.
Π‘Π»ΠΈΡΠ½ΠΈΠ΅
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ ΡΠ°Π½Π΅Π΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠ°Π³ΠΈ Β«ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΊ ΡΠ»ΠΈΡΠ½ΠΈΡΒ», ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² git merge , Π³Π΄Π΅ — ΡΡΠΎ ΠΈΠΌΡ Π²Π΅ΡΠ²ΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π° Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΡΡ.
ΠΡΡΡΡΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²ΠΏΠ΅ΡΠ΅Π΄
Π‘Π»ΠΈΡΠ½ΠΈΠ΅ Ρ ΡΡΠΊΠΎΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠΎΠΉ Π²ΠΏΠ΅ΡΠ΅Π΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΠΏΡΡΡ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠ½Ρ Π²Π΅ΡΠ²ΠΈ ΠΊ ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ.ΠΠΌΠ΅ΡΡΠΎ Β«ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎΒ» ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠ²Π΅ΠΉ Π²ΡΠ΅, ΡΡΠΎ Git Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΈΡΡΠΎΡΠΈΠΉ, — ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ (ΡΠΎ Π΅ΡΡΡ Β«ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠ°ΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄Β») ΠΊΠΎΠ½Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ Π²Π²Π΅ΡΡ
Π΄ΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ. ΠΡΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΈΡΡΠΎΡΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΈΠ· ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ, ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΠΊΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΡΡΡΡΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ Ρ master Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΠ΄Π½Π°ΠΊΠΎ Π±ΡΡΡΡΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Π΅ΡΠ²ΠΈ ΡΠ°Π·ΠΎΡΠ»ΠΈΡΡ.ΠΠΎΠ³Π΄Π° Π½Π΅Ρ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ ΠΊ ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ, Git Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π²ΡΠ±ΠΎΡΠ°, ΠΊΡΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅Ρ ΡΡΠΎΡΠΎΠ½Π½Π΅Π³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ. Π’ΡΠ΅Ρ ΡΡΠΎΡΠΎΠ½Π½Π΅Π΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π΄Π²ΡΡ ΠΈΡΡΠΎΡΠΈΠΉ. ΠΠΎΠΌΠ΅Π½ΠΊΠ»Π°ΡΡΡΠ° ΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΡΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ°, ΡΡΠΎ Git ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΡΠ»ΠΈΡΠ½ΠΈΡ: Π΄Π²Π΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Π²Π΅ΡΠΎΠΊ ΠΈ ΠΈΡ ΠΎΠ±ΡΠΈΠΉ ΠΏΡΠ΅Π΄ΠΎΠΊ.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΡ ΠΈΠ· ΡΡΠΈΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Ρ ΡΡΠΊΠΎΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠΎΠΉ (Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ) Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠΎΡ ΡΠ°Π½ΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ 3-ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΡΠ»ΡΠΆΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π²ΡΡ Π²Π΅ΡΠ²Π΅ΠΉ.
ΠΠ°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ Π±ΡΡΡΡΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΊ Π½Π΅ΠΉ Π΄Π²Π΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅Ρ Π΅Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΡΠΎΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ.
# ΠΠ°ΡΠ°ΡΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ git checkout -b new-feature master # ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ git add git commit -m "ΠΠ°ΠΏΡΡΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ" # ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ git add git commit -m "ΠΠ°Π²Π΅ΡΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ" # Π‘Π»ΠΈΡΡ Ρ Π½ΠΎΠ²ΡΠΌ -feature branch git checkout master git merge new-feature git branch -d new-feature ΠΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²Π΅ΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Git Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΆΠ°Π»ΠΎΠ²Π°ΡΡΡΡ Π½Π° git branch -d , ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ.
Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Ρ ΡΡΠΊΠΎΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠΎΠΉ Π²ΠΏΠ΅ΡΠ΅Π΄ Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ Π²Π΅Π΄Π΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ git merge Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ --no-ff .
git ΡΠ»ΠΈΡΠ½ΠΈΠ΅ --no-ff ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²Π΅ΡΠ²Ρ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΡΡ, Π½ΠΎ Π²ΡΠ΅Π³Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ (Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ ΡΡΠΊΠΎΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠΎΠΉ Π²ΠΏΠ΅ΡΠ΅Π΄).ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠ»ΠΈΡΠ½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
3-ΡΡΠΎΡΠΎΠ½Π½Π΅Π΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ
ΠΎΠΆ, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΠ΅Ρ
ΡΡΠΎΡΠΎΠ½Π½Π΅Π³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ master Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΠΏΠΎΠΊΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. ΠΡΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π΄Π»Ρ ΠΊΡΡΠΏΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΠ°ΠΏΡΡΡΠΈΡΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ git checkout -b new-feature master # ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ git add git commit -m "ΠΠ°ΠΏΡΡΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ" # ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ git add git commit -m "ΠΠ°Π²Π΅ΡΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ" # Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π΅ΡΠΊΡ git checkout master # ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ git add git commit -m "ΠΠ½Π΅ΡΠΈΡΠ΅ ΡΠ²Π΅ΡΡ
ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² master" # Π‘Π»ΠΈΡΠ½ΠΈΠ΅ Π² Π²Π΅ΡΠΊΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ git merge new-feature git branch -d new-feature ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π»Ρ Git Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π±ΡΡΡΡΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅Ρ ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ master Π² new-feature Π±Π΅Π· Π²ΠΎΠ·Π²ΡΠ°ΡΠ°.
ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ°Π±ΠΎΡΠΈΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π½ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π½Π° master Π±ΡΠ΄ΡΡ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΡΠ»ΠΈ Π²Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ Π²Π΅ΡΠΊΠ° Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π±ΡΠ»Π° ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΉ, ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π²Π°ΠΌ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π±ΡΠ»ΠΎ Π±Ρ Π»ΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠΎΠΈΡΡ Π΅Π΅ Π½Π° master ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π±ΡΡΡΡΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅. ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ Π·Π°ΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π»ΠΈΡΠ½ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ.
Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°
ΠΡΠ»ΠΈ Π΄Π²Π΅ Π²Π΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΡΠ°ΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ°ΠΉΠ»Π°, Git Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΡΡ Π²Π΅ΡΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.ΠΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠ°ΠΊΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΎΠ½Π° ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΡΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π²ΡΡΡΠ½ΡΡ.
ΠΠ°ΠΆΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ»ΠΈΡΠ½ΠΈΡ Git ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π·Π½Π°ΠΊΠΎΠΌΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ / ΡΡΠ°ΠΏΠ° / ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠΎΠ³Π΄Π° Π²Ρ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΠ΅ΡΡ Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠΌ ΡΠ»ΠΈΡΠ½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git status ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΎΠ±Π΅ Π²Π΅ΡΠ²ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠ°Π·Π΄Π΅Π» hello.py , Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ:
ΠΠ° Π³Π»Π°Π²Π½ΠΎΠΌ ΡΠ·Π»Π΅ Π²Π΅ΡΠΊΠΈ ΠΠ΅ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΏΡΡΠΈ: (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ "git add / rm... "Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ) ΠΎΠ±Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ: hello.py ΠΠ°ΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ
ΠΠΎΠ³Π΄Π° Git ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΎΠ½ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π·Π°ΡΡΠΎΠ½ΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΌΠ΅ΡΠ°ΡΡ ΠΎΠ±Π΅ ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ. ΠΡΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΡ: >>>>>>. ΠΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠΎΠΈΡΠΊΠ°ΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΡΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ, Π³Π΄Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ.
Π²ΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, Π½Π΅ Π·Π°ΡΡΠΎΠ½ΡΡΡΠΉ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠΌ >>>>>>> feature branch; ΠΠ±ΡΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΌΠ°ΡΠΊΠ΅ΡΠΎΠΌ ======= ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΡΡ, Π° ΡΠ°ΡΡΡ ΠΏΠΎΡΠ»Π΅ — ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΡΡ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΠΉΡΠΈ ΠΈ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ Π²ΠΊΡΡΡ. ΠΠΎΠ³Π΄Π° Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π³ΠΎΡΠΎΠ²Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅, Π²ΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ git add Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ Git, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ. ΠΠ°ΡΠ΅ΠΌ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΠΎΠ±ΡΡΠ½ΡΠΉ git commit , ΡΡΠΎΠ±Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΡΠΎ ΡΠΎΡ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ, ΡΡΠΎ ΠΈ ΠΏΡΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ½ΠΈΠΌΠΊΠ°, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π»Π΅Π³ΠΊΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡΠΌΠΈ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠ΅Ρ ΡΡΠΎΡΠΎΠ½Π½Π΅Π³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ.ΠΡΠΈ ΡΡΠΊΠΎΡΠ΅Π½Π½ΠΎΠΌ ΡΠ»ΠΈΡΠ½ΠΈΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
Π‘Π²ΠΎΠ΄ΠΊΠ°
ΠΡΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±Π·ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git merge . Π‘Π»ΠΈΡΠ½ΠΈΠ΅ — Π²Π°ΠΆΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Git. ΠΡ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠΊΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ Ρ ΡΡΠΊΠΎΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠΎΠΉ Π²ΠΏΠ΅ΡΠ΅Π΄ ΠΈ ΡΡΠ΅Ρ
ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ ΠΈΡΡΠΈΠ½Π½ΡΠΌ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ. ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ:
- Π‘Π»ΠΈΡΠ½ΠΈΠ΅ Git ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Π΅Π΄ΠΈΠ½ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
- Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π° ΡΠ»ΠΈΡΠ½ΠΈΡ Git: ΡΡΠΊΠΎΡΠ΅Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠ° Π²ΠΏΠ΅ΡΠ΅Π΄ ΠΈ ΡΡΠ΅Ρ ΡΡΠΎΡΠΎΠ½Π½ΡΡ
- Git ΠΌΠΎΠΆΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π΅ΡΠ»ΠΈ Π² ΠΎΠ±Π΅ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π½Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
Π ΡΡΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΈ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Git, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: git branch , git pull ΠΈ git fetch . ΠΠΎΡΠ΅ΡΠΈΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
.
Π ΠΌΠ΅ΡΠΎΠ΄Π°Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Π½Π° GitHub
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ GitHub
ΠΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΡ
- GitHub.com
ΠΠ°ΡΠΈΠ½Π°Ρ
- ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ
- ΠΠ°ΡΡΡΠΎΠΈΡΡ Git
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΏΠΎ
- Π€ΠΎΡΠΊ ΡΠ΅ΠΏΠΎ
- ΠΡΡΡ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΠΌ
- ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ GitHub
- ΠΡΠΎΠ΄ΡΠΊΡΡ GitHub
- ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΡΡΠΊΠΎΠ² ΡΠ°Π½Π½Π΅Π³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ
- Π’ΠΈΠΏΡ Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ² GitHub
- Π§Π°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ Π² ΠΏΠ»Π°Π½Π°Ρ GitHub
- GitHub CLI
- GitHub Desktop
- GitHub Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²
- Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π΄ΠΎΡΡΡΠΏ Π½Π° GitHub
- ΠΠ»ΠΎΡΡΠ°ΡΠΈΠΉ GitHub
- Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ Git
- Π£ΡΠ΅Π±Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ Git ΠΈ GitHub
- Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½Π° GitHub
- Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ GitHub
- ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΎΠ±Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ GitHub Enterprise Cloud
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΎΠ±Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ GitHub Enterprise Server
- ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° GitHub
- ΠΠΎΠΈΡΠΊ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π²Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ Π² ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° GitHub
- Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΡΠΎ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠ°ΠΌΠΈ
- Π‘Π»Π΅Π΄ΡΡ Π·Π° Π»ΡΠ΄ΡΠΌΠΈ
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ GitHub
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ
- Π£ΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ
- ΠΠΎΡΡΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ
- ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ
.
ΠΠ°ΡΠΈΠ°Π½ΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ Git
ΠΠΎΠ³Π΄Π° ΡΠ°ΡΡΡ ΡΠ°Π±ΠΎΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π° ΠΈ Π³ΠΎΡΠΎΠ²Π° ΠΊ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π»ΠΈΠ½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π²Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΊΠΎΠ²Ρ Π²Π°ΡΠΈ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ? Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΌΠ΅ΡΠΊΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Atlassian. ΠΠ°Π΄Π΅ΡΡΡ, Π² ΠΊΠΎΠ½ΡΠ΅ Ρ Π²Π°Ρ Π±ΡΠ΄ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ Git
Π‘Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ Π΄Π²ΡΡ Π²Π΅ΡΠ²Π΅ΠΉ.Git Π²ΠΎΠ·ΡΠΌΠ΅Ρ Π΄Π²Π° (ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅) ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΈ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΠΎΠ±ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ. Π Git Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΠΎΠΈΡΠΊΠ° Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Β«ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠΌΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡΒ». ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Git Π½Π°ΠΉΠ΄Π΅Ρ ΠΎΠ±ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΎΠ½ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Β«ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡΒ», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠ»ΠΈΡΠ½ΠΈΡ. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ — ΡΡΠΎ ΠΎΠ±ΡΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΡΡΠΎ Π΅ΡΡΡ Π΄Π²Π΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.
git merge Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ±Π΅ΡΠ΅Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, Π΅ΡΠ»ΠΈ ΡΠ²Π½ΠΎ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ½ΠΎΠ΅.ΠΠΎΠΌΠ°Π½Π΄Ρ git merge ΠΈ git pull ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ -s (ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ). Π ΠΎΠΏΡΠΈΠΈ -s ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠΌΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ ΡΠ²Π½ΠΎ, Git Π²ΡΠ±Π΅ΡΠ΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ
Π²Π΅ΡΠΎΠΊ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΡΠ»ΠΈΡΠ½ΠΈΡ.
Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ
git merge -s ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ Π²Π΅ΡΠΊΠ° 2 Π²Π΅ΡΠΊΠ° 3 ΠΠΏΠ΅ΡΠΈΡΡΠ΅Ρ Π΄Π²ΡΠΌΡ Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ.Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ — ΡΡΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅, Π½ΠΎ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ. ΠΡΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ.
Π Π΅ΡΠΈΠΌΠΎΡΡΡ
git merge -s resolve branch2 branch3 ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π΅ Π³ΠΎΠ»ΠΎΠ²Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ΅Ρ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠ½ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΡΠ²Π»ΡΡΡ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΡΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π² ΡΠ΅Π»ΠΎΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ ΠΈ Π±ΡΡΡΡΡΠΌ.
ΠΡΡΠΌΠΈΠ½ΠΎΠ³
git merge -s octopus branch2 branch3 branch4 branchN Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π΄Π²ΡΡ Π³ΠΎΠ»ΠΎΠ². ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ, ΠΎΡΡΠΌΠΈΠ½ΠΎΠ³ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΡΠ»ΠΈ ΠΏΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ, ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΡΡΠ½ΡΡ, ΠΎΡΡΠΌΠΈΠ½ΠΎΠ³ ΠΎΡΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΎΡ ΠΏΠΎΠΏΡΡΠΊΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠ½ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΠ°ΡΠΈ
git merge -s Π½Π°ΡΠ° Π²Π΅ΡΠΊΠ°2 Π²Π΅ΡΠΊΠ°3 Π²Π΅ΡΠΊΠ° N ΠΠ°ΡΠ° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ N ΡΠΈΠ»ΠΈΠ°Π»Π°ΠΌΠΈ.Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π²Π΅Π½ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΠΈ HEAD . Π’Π΅ΡΠΌΠΈΠ½ Β«Π½Π°ΡΒ» ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΠ΅Π΅ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π²ΡΠ΅Ρ
Π΄ΡΡΠ³ΠΈΡ
Π²Π΅ΡΠ²Π΅ΠΉ. ΠΠ½ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΠΎΡ
ΠΎΠΆΠΈΡ
Π²Π΅ΡΠ²Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΠΎ
git merge -s subtree branchA branchB ΠΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ. ΠΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ A ΠΈ B, Π΅ΡΠ»ΠΈ B ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΠΎΠΌ A, B ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π·ΠΈΡΡ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ A. ΠΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΠΏΡΠ΅Π΄ΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ A ΠΈ B.
ΡΠΈΠΏΠΎΠ² ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΡΠ»ΠΈΡΠ½ΠΈΡ Git
Π―Π²Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅
Π―Π²Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ — ΡΡΠΎ ΡΠΈΠΏ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Β«Π―Π²Π½Π°ΡΒ» ΡΠ°ΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ²Π½ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π³Π΄Π΅ Π±ΡΠ»ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΠ΅. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π½ΠΎ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΠΎΠΌ ΡΠ°ΠΊΡΠ΅, ΡΡΠΎ ΠΎΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π±ΡΠ»ΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΡΠ²Π½ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Β«ΡΡΠΌΠ°Β» Π² ΠΈΡΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π½Π΅ΡΠ²Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π±ΡΡΡΡΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅
Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΠ²Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, Π½Π΅ΡΠ²Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ — Π½Π΅Ρ. ΠΠ΅ΡΠ²Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π±Π΅ΡΠ΅Ρ ΡΠ΅ΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π²Π΅ΡΠΊΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡ ΠΊ Π²Π΅ΡΡΠΈΠ½Π΅ ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ. ΠΠ΅ΡΠ²Π½ΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡΠΌΠΈ Ρ ΡΡΠΊΠΎΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠΎΠΉ Π²ΠΏΠ΅ΡΠ΅Π΄. ΠΠ΅ΡΠ²Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ — ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ.
Π‘ΠΊΠ²ΠΎΡ ΠΏΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π±Π΅Π· ΡΠ²Π½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ
ΠΡΡΠ³ΠΎΠΉ ΡΠΈΠΏ Π½Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ — ΡΡΠΎ ΡΠΊΠ²ΠΎΡ.Π‘ΠΊΠ²ΠΎΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²ΠΊΠΈ. Π‘Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠΊΠ²ΠΎΡΠ° Π±Π΅ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΈΠ»ΠΈ ΡΠΆΠΈΠΌΠ°Π΅Ρ ΠΈΡ
Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΠ°ΡΠ΅ΠΌ ΡΡΠ° ΡΠΈΠΊΡΠ°ΡΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΊ HEAD Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ. Π‘ΠΊΠ²ΠΎΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Β«ΡΠΈΡΡΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈΒ» Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ»ΠΈΡΠ½ΠΈΡ. Π¦Π΅Π»Π΅Π²Π°Ρ Π²Π΅ΡΠ²Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠ°ΡΡΡΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΡΠΈ ΡΠΆΠ°ΡΠΈΠΈ ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ ΠΈΡΡΠΎΡΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠ΅Π»Π΅Π²ΡΡ
Π²Π΅ΡΠ²Π΅ΠΉ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠΆΠ°ΡΠΎΠΉ Β«ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ Π²Π΅ΡΠΊΠΈΒ». ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ ΡΠ°Π±ΠΎΡΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ git , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²Π΅ΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ Git
Β«Π Π΅ΠΊΡΡΡΠΈΠ²Π½Π°ΡΒ» ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½Π°Ρ Π²ΡΡΠ΅, ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΡΠΈΠΉ ΡΠ°Π±ΠΎΡΡ.
ΠΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΡΠ°ΡΡ ΡΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠ΅ΠΉ ΡΠ»ΠΈΡΠ½ΠΈΡ Ours. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΠ΅Ρ, ΡΡΠΎΠ±Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π΅Π³ΠΎ ΡΠΈΡΡΠΎ, ΠΎΡΠ΄Π°Π² ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠ΅ Β«Π½Π°ΡΠ΅ΠΉΒ» Π²Π΅ΡΡΠΈΠΈ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Β«ΠΈΡ Β» Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠ°Ρ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ.
ΠΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Β«Π½Π°ΡΠ΅ΠΉΒ» ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ. Π²Π°ΡΠΈΠ°Π½Ρ Β«ΠΈΡ Β» ΠΎΡΠ΄Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΠΎΡΡΡΠ°Π½Π½ΠΎΠΌΡ Π΄Π΅ΡΠ΅Π²Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Π² ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ².
ΠΡΠ° ΠΎΠΏΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ Π½Π΅Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΡ ΡΡΡΠΎΠΊ. ΠΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡΠ΅ Π²Π΅ΡΠ²ΠΈ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π·ΠΎΡΠ»ΠΈΡΡ.
ΠΡΠ° ΠΎΠΏΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ. ΠΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git diff .
ignore- * ignore-space-change
ignore-all-space
ignore-space-at-eol
ignore-cr-at-eol
ΠΠ°Π±ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π½Π°ΡΠ΅Π»Π΅Π½Π½ΡΡ Π½Π° ΠΏΡΠΎΠ±Π΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ.ΠΡΠ±Π°Ρ ΡΡΡΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΡΠΈΠΈ, Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½Π°.
ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² git-Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² ΠΏΡΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΡΡΠ΅Ρ
ΡΡΠΎΡΠΎΠ½Π½Π΅Π³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΡΠ° ΠΎΠΏΡΠΈΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠΈΠΌΠΈΡΡ Π²Π΅ΡΠ²ΡΠΌΠΈ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ checkin / checkout .
ΠΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΠΏΡΠΈΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΌΠΈΡΠΎΠ²ΠΊΠΈ. ΠΡΠΎ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ merge.renormalize .
ΠΡΠ° ΠΎΠΏΡΠΈΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ»ΠΈΡΠ½ΠΈΡ.
ΠΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ n ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠ³Π° ΡΡ
ΠΎΠΆΠ΅ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ n ΡΠ°Π²Π½ΠΎ 100%.
ΠΡΠ° ΠΎΠΏΡΠΈΡ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½Π° ΠΈΠ· ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Β«ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΠΎΒ». ΠΡΠ»ΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π΄Π²ΡΠΌΡ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ± ΠΈΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΊΠ΅, ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΡΡΠΈ Π΄Π΅ΡΠ΅Π²Π°, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π»ΠΈ.
ΠΠ°ΡΠ° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΡΠ»ΠΈΡΠ½ΠΈΡ Git
Atlassian Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π½ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠΉ.ΠΡΠΈΡΠΈΠ½Π° ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠ°: ΡΠ²Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡΡ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π΄Π»Ρ ΡΠ»ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π΄Π»Ρ ΠΎΠ±Π·ΠΎΡΠ°, Π½ΠΎ ΡΡΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ. ΠΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ.
.
git-merge (1)
Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΡΡΠΈΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π²
ΡΠ°ΠΉΠ»Ρ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΠΏΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ «ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ», ΡΡΠΎ
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΌΠ°ΡΠΊΠ΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° <<<<<<< , ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½ΠΎΠΉ,
ΠΌΠ°ΡΠΊΠ΅Ρ ======= , ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½ΠΎΠΉ, Π° Π·Π°ΡΠ΅ΠΌ
ΠΌΠ°ΡΠΊΠ΅Ρ >>>>>>> .ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΡΡΠΈΠ»Ρ, Β«diff3Β», Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ |||||||
ΠΌΠ°ΡΠΊΠ΅Ρ ΠΈ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΌΠ°ΡΠΊΠ΅ΡΠΎΠΌ ======= .
ΠΡΠ»ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²ΠΎΡΡ
ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°
Π²Π΅ΡΠ²ΠΈ, Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΡ
ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅
Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ
ΡΠ°Π½ΡΡΡΡ Π² ΠΈΡ
Π²Π΅ΡΠ²ΡΡ
ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ.
Π¦Π΅Π½Π½ΠΎΡΡΠΈ Π²Π΅ΡΠ²ΠΈ .<ΡΠ΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΠΊΠ°> .merge , ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅Ρ
ΡΠΈΠ»ΠΈΠ°Π»Ρ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π½Π°Π·Π²Π°Π½Π½ΡΠ΅ Π²Π΅ΡΠ²ΡΡ . <ΡΠ΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΠΊΠ°> .remote
Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ .
Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π²Π΅ΡΠΊΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ, Π° ΡΠΎΠ²Π΅ΡΡ
ΡΡΠΈ Π²Π΅ΡΠ²ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Git Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ.
ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ
ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°Π΅ΡΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄. ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false ,
ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Git ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π² ΡΠ°ΠΊΠΎΠΌ
ΡΠ»ΡΡΠ°ΠΉ (ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° --no-ff ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ
Π»ΠΈΠ½ΠΈΡ). ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ , Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΊΠΈΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ Ρ Π±ΡΡΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠΎΠΉ Π²ΠΏΠ΅ΡΠ΅Π΄.
ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ (ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΈ --ff-only ΠΈΠ·
ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ°).
ΠΡΠ»ΠΈ true, ΡΡΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ --verify-signatures.
Π²Π°ΡΠΈΠ°Π½Ρ Π»ΠΈΠ½ΠΈΠΈ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΌ. Git-merge (1).
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ Π²Π΅ΡΠΎΠΊ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ
ΡΠ΅ΠΊΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π²Π΅ΡΠΊΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π½ΠΈΠΌΠΈ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΠΊ Π»ΠΎΠΆΠ½ΠΎΠΌΡ.
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ Π²Π΅ΡΠΎΠΊ, Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ
ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΡΡ
ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ ΠΈΠ·
ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ false, ΠΈ
ΠΈΡΡΠΈΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠΎΠΌ 20.
ΠΠΎΠ±Π°Π²ΠΈΠ² Π³Π»ΠΎΠ±ΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ
ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡ ΠΊ ΡΡΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π½Π°ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ,
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Ρ ΡΡΠΈΠΌΠΈ
Π²Π΅ΡΠ²ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΠΎΠΏΡΡΠΊΠ°ΡΡ "Π² <Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ>" ΠΈΠ·
Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅.
ΠΠ»Π΅ΠΌΠ΅Π½Ρ Ρ ΠΏΡΡΡΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ ΡΠΏΠΈΡΠΊΠ°
Π³Π»ΠΎΠ±ΡΡΠΎΠ², Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΡΡ
ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ merge.suppressDest Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°,
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ master ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ.
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ
Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ»ΠΈΡΠ½ΠΈΡ; Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΡΠ°Π·Π½ΠΈΡΠ°renameLimit. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π΅ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ
Π²ΡΠΊΠ»ΡΡΠ΅Π½.
ΠΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΠΈ Git ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ "false", ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅
Π²ΡΠΊΠ»ΡΡΠ΅Π½. ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«trueΒ», Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ diff.renames.
ΠΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΠΈ Git ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², Π²Π»ΠΈΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π²
Π²ΡΠ΅ΠΌΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΌΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π΅
ΠΈΡΡΠΎΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π΅
ΠΈΡΡΠΎΡΠΈΡ.ΠΡΠ»ΠΈ Π΄Π»Ρ merge.directoryRenames ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ "false", ΠΊΠ°ΡΠ°Π»ΠΎΠ³
ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΎ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ Π½ΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π±ΡΠ΄ΡΡ
ΠΎΡΡΠ°Π»ΠΈΡΡ Π² ΡΡΠ°ΡΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ "true", ΠΊΠ°ΡΠ°Π»ΠΎΠ³
Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ Π½ΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π±ΡΠ΄ΡΡ
ΠΏΠ΅ΡΠ΅Π΅Ρ
Π°Π» Π² Π½ΠΎΠ²ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΒ», ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ
Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΎ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ
ΠΏΡΡΠ΅ΠΉ. ΠΡΠ»ΠΈ merge.renames Π»ΠΎΠΆΠ½ΠΎ,
merge.directoryRenames ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ ΠΈ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ false.ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΠΊ Β«ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΒ».
Π‘ΠΎΠΎΠ±ΡΠΈΡΠ΅ Git, ΡΡΠΎ ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π²
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π·Π°ΠΏΠΈΡΠΈ
ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ΠΌ ΡΡΡΠΎΠΊΠΈ CRLF, Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΡΠΎΠΊΡ LF
ΠΊΠΎΠ½ΡΠΎΠ²ΠΊΠΈ). Π ΡΠ°ΠΊΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Git ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅
Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ
Π² ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΡΡ ΡΠΎΡΠΌΡ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ
ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ.Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ,
ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» Β«ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ Ρ ΡΠ°Π·Π½ΠΎΠΉ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠ΅ΠΉ / ΠΎΠΏΠ»Π°ΡΠΎΠΉ
Π°ΡΡΠΈΠ±ΡΡΡ Β»Π² gitattributes (5).
Π‘Π»Π΅Π΄ΡΠ΅Ρ Π»ΠΈ ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ diffstat ΠΌΠ΅ΠΆΠ΄Ρ ORIG_HEAD ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ»ΠΈΡΠ½ΠΈΡ
Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠ΅ΡΠ½ΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ true Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°ΠΉΠ½ΠΈΠΊΠ΅.
Π΄ΠΎ Π½Π°ΡΠ°Π»Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ.ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π½Π° Π³ΡΡΠ·Π½ΠΎΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²Π΅.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ: ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ½ΠΈΠΊΠ° ΠΏΠΎΡΠ»Π΅
ΡΡΠΏΠ΅ΡΠ½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌ.
ΠΡΠ° ΠΎΠΏΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΌΠ΅Π½Π΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ --no-autostash ΠΈ
--autostash Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² git-merge (1).
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - false.
Π£ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ git-mergetool (1).Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΡΠΏΠΈΡΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠ±ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ
ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ mergetool.
Π£ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ git-mergetool (1), ΠΊΠΎΠ³Π΄Π°
-g / - ΡΠΊΠ°Π·Π°Π½ ΡΠ»Π°Π³ gui. Π ΡΠΏΠΈΡΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠ±ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ mergetool.ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ
gvimdiff
gvimdiff2
gvimdiff3
nvimdiff
nvimdiff2
vimdiff2
vimdiff3
Π£ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΌΠΎΠΌ Π²ΡΠ²ΠΎΠ΄Π°, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠΌ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΌ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ
ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ. Π£ΡΠΎΠ²Π΅Π½Ρ 0 Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡ, ΠΊΡΠΎΠΌΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ. Π’ΠΎΠ»ΡΠΊΠΎ Π²ΡΡ
ΠΎΠ΄Ρ ΡΡΠΎΠ²Π½Ρ 1
ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ, 2 Π²ΡΡ
ΠΎΠ΄Π°, ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ². Π£ΡΠΎΠ²Π΅Π½Ρ 5 ΠΈ
Π²ΡΡΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - ΡΡΠΎΠ²Π΅Π½Ρ 2.
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ GIT_MERGE_VERBOSITY .
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠ΅ ΠΈΠΌΡ Π΄Π»Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ
Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΌ. Gitattributes (5).
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ
Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΌ. Gitattributes (5).
ΠΠ°Π·ΡΠ²Π°Π΅Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ, ΠΊΠΎΠ³Π΄Π°
Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΠΈΠΌΠΈ ΠΏΡΠ΅Π΄ΠΊΠ°ΠΌΠΈ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΌ. Gitattributes (5).
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Ρ Π²Π΅ΡΠΊΠΎΠΉ
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ git merge , Π½ΠΎ Π²Π°ΡΠΈΠ°Π½Ρ
Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΡΠΎΠ±Π΅Π»Π°, Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ.
.