πππ± 20 Π»Π΅Ρ Git: Π²ΡΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π½Π΅ΠΎΠ±ΡΡΠ½ΡΠΉ, Π²ΡΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½ΡΠΉ
ΠΠ΅Π³Π΅Π½Π΄Π°ΡΠ½ΠΎΠΌΡ Git ΡΡΡΠΊΠ½ΡΠ»ΠΎ 20! ΠΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»ΡΠ΄Ρ Π½Π°Π·ΡΠ²Π°Π» Β«ΡΡΠΏΡΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°Β», ΡΡΠ°Π» Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΎΡΡ ΡΠ°Π· ΠΏΠΈΡΠ°Π» ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ Ρ ΡΠ°Π½ΠΈΠ» ΡΠ°ΠΉΠ»Ρ.

ΠΠ²Π°Π΄ΡΠ°ΡΡ Π»Π΅Ρ Π½Π°Π·Π°Π΄ (7 Π°ΠΏΡΠ΅Π»Ρ 2005 Π³.) ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»ΡΠ΄Ρ ΡΠ΄Π΅Π»Π°Π» ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² Git. ΠΠ° ΡΡΠΈ Π³ΠΎΠ΄Ρ Git ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ»ΡΡ ΠΈΠ· ΡΠΊΡΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π΄ΠΎΠΌΠΈΠ½ΠΈΡΡΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΌΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.

ΠΠ»Ρ ΠΌΠ΅Π½Ρ ΡΡΠΎ Π±ΡΠ»ΠΎ Π·Π°Ρ Π²Π°ΡΡΠ²Π°ΡΡΠ΅Π΅ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΠ΅. Π― Π½Π°ΡΠ°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Git Π²ΡΠΊΠΎΡΠ΅ ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ, ΡΡΠ°Π» ΡΠΎΡΡΡΠ΅Π΄ΠΈΡΠ΅Π»Π΅ΠΌ GitHub, Π½Π°ΠΏΠΈΡΠ°Π» ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΊΠ½ΠΈΠ³Ρ ΠΎ Π½Π΅ΠΌ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π» ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΠ» Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡ β ΡΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΌΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π½ΠΎ ΠΈ ΠΌΠΎΡ ΠΆΠΈΠ·Π½Ρ.
ΠΡΡΠΎΠΊΠΈ: ΠΏΠ°ΡΡΠΈ ΠΈ Π°ΡΡ ΠΈΠ²Ρ

Git ΡΠΎΠ΄ΠΈΠ»ΡΡ ΠΈΠ· ΡΠ°Π·ΠΎΡΠ°ΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ΄ΡΠ° Linux Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ. Π‘ΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎ ΡΠΏΠΈΡΠΊΠΈ ΡΠ°ΡΡΡΠ»ΠΊΠΈ Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ β ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠΉ, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°ΡΠΈΡΠΎΠΉ.
Π Π°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅Π» ΡΠ°ΠΊ:
- ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π°ΡΡ ΠΈΠ²Π° Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΊΠ°ΡΠΈΠ²Π°Π»ΠΈ ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π»ΠΈ Π΅Π³ΠΎ.
- ΠΠ½ΠΎΡΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ).
- Π‘ΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ ΠΏΠ°ΡΡ ΡΠ΅ΡΠ΅Π· GNU diff.
- ΠΡΠΏΡΠ°Π²Π»ΡΠ»ΠΈ ΠΏΠ°ΡΡ Π² ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΡΡΡΠ»ΠΊΠΈ.
- ΠΠ±ΡΡΠΆΠ΄Π°Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
- ΠΠ΅ΠΉΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ» ΠΏΠ°ΡΡ, Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π» ΠΏΡΠ°Π²ΠΊΠΈ.
- ΠΠΎΠ²ΡΠΎΡΠΈΡΡ 1-7.
ΠΠΎ ΡΡΡΠΈ, ΡΡΠ° ΡΡ Π΅ΠΌΠ° ΡΠΆΠ΅ Π±ΡΠ»Π° ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΉ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ: Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΊΠΎΠΏΠΈΡ, Π° Β«ΠΏΡΠ°Π²ΠΎΠΌ Π½Π° ΡΠ»ΠΈΡΠ½ΠΈΠ΅Β» ΠΎΠ±Π»Π°Π΄Π°Π» ΡΠΎΡ, ΠΊΡΠΎ ΠΌΠΎΠ³ Π²ΡΠ»ΠΎΠΆΠΈΡΡ Π½ΠΎΠ²ΡΠΉ Π°ΡΡ ΠΈΠ² Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.
ΠΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΡΠ°Π²Π°Π»ΡΡ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ β ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠ°ΡΡΠ°ΠΌΠΈ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΡΠΎ ΠΈ ΠΊΠ΅ΠΌ Π±ΡΠ»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ BitKeeper Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Ρ ΠΈ Π½ΡΠ°Π²ΠΈΠ»ΡΡ ΠΠΈΠ½ΡΡΡ, Π½ΠΎ Π΅Π³ΠΎ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π»Π° Π΄ΡΡ Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°.
ΠΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Git: ΠΊΠ°ΠΊ Π²ΡΠ΅ Π½Π°ΡΠΈΠ½Π°Π»ΠΎΡΡ
Π Π°Π· ΡΠΆ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ Git, Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° Π΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. Π§ΡΠΎ ΡΠΌΠ΅Π» Git Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ?
ΠΡΠΎ ΡΡΠΏΠΎΠΉ (Π½ΠΎ ΡΠ΅ΡΡΠΎΠ²ΡΠΊΠΈ Π±ΡΡΡΡΡΠΉ) ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ. ΠΠ½ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ, Π½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ.
ΠΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π» ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΡΡ
Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠΎ Π±ΡΠ»ΠΈ Π½Π΅ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ Π½Π°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠΎΠ΄Π΅ git commit
, Π° Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ
β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, write-tree
ΠΈ commit-tree
(ΠΏΡΠ΅ΡΠΈΠΊΡ git-
ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π»ΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π΄Π΅Π»Ρ).
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ
ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ»ΠΈΡΡ Π² Β«ΡΠ°Π½ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅Β» (Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅) ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π΄ΠΎ ΡΠΈΡ
ΠΏΠΎΡ (git cat-file
, git write-tree
). ΠΡΡΠ³ΠΈΠ΅ ΡΠΈΠ»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ read-tree
Π±ΠΎΠ»ΡΡΠ΅ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π» ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ git ls-files
). ΠΠΎ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΠ»ΠΈΡΡ.
Π‘ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° Git ΡΠΌΠ΅Π»:
- Π‘ΠΎΠ·Π΄Π°Π²Π°ΡΡ Β«ΡΠ½ΠΈΠΌΠΊΠΈΒ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ
update-cache
(ΠΏΠΎ ΡΡΡΠΈ, ΡΠΎΡΠΌΠΈΡΡΡ tarball) ΠΈwrite-tree
Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . - Π‘ΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
commit-tree
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² Π½ΠΎΠ²ΡΠΉ Π°ΡΡ ΠΈΠ², ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ Π²Π΅ΡΡΠΈΡ Π°ΡΡ ΠΈΠ²Π°, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ ΠΏΡΠΎΠΈΠ·ΠΎΡΡΠ». - Π§ΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
cat-file
,read-tree
ΠΈshow-diff.
ΠΠΈΠ½ΡΡ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π» ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ Β«ΡΠ°Π½ΡΠ΅Ρ Π½ΠΈΠΊΡΒ», ΠΏΠΎΠ²Π΅ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΡΠΎ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ Π½Π°ΠΏΠΈΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (Β«ΡΠ°ΡΡΠΎΡΒ»). ΠΠ½ ΡΡΡΠ΅ΠΌΠΈΠ»ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ Π°ΡΡ ΠΈΠ²ΠΎΠ², Π° Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΊΡΠΎ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠΎΡ ΡΠ»ΠΎΠΉ.
ΠΠ°ΠΊ Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΡΡ Ρ Git: ΠΎΡ ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΡΡ ΡΠΊΡΠ°Π½ΠΎΠ² Π΄ΠΎ GitHub
ΠΠΏΠ΅ΡΠ²ΡΠ΅ Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ Git, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ°Π» Ρ Π΄ΡΡΠ³ΠΎΠΌ ΠΠΈΠΊΠΎΠΌ Π₯Π΅Π½Π³Π΅Π²Π΅Π»ΡΠ΄ΠΎΠΌ Π² ΡΡΠ°ΡΡΠ°ΠΏΠ΅ Reactrix. ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΡΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Git Π½Π΅ ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ (ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΎΠ΄Π½Ρ), Π° ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° β Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π΄ΡΠΌΠΊΠ΅ ΠΠΈΠ½ΡΡΠ°.
ΠΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π»ΠΈ ΡΠ΅ΡΡ ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΡΡ ΡΠΊΡΠ°Π½ΠΎΠ² Ρ Β«ΡΡΠΆΠ΅Π»ΡΠΌΠΈΒ» ΠΌΠ΅Π΄ΠΈΠ°ΡΠ°ΠΉΠ»Π°ΠΌΠΈ. Π‘ΠΎΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ² ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π½Π°Π±ΠΎΡΠΎΠ² ΡΠΎΠ»ΠΈΠΊΠΎΠ², ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π»ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠ΅ ΡΠΎΡΠΎΠ²ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ, Π° ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΌΠ΅Π½ΡΠ»ΡΡ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ: Β«ΡΡΡΡΠΎΠΉΡΡΠ²Ρ Π Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΠΈΠΊΠΈ 1, 2, 3, ΡΡΡΡΠΎΠΉΡΡΠ²Ρ Π β ΡΠΎΠ»ΠΈΠΊΠΈ 2, 3 ΠΈ 4Β», Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ.
Git ΡΡΠ°Π» Π΄Π»Ρ Π½Π°Ρ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°. Π‘ΠΊΡΠΈΠΏΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π» ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅, ΡΠΎΠ·Π΄Π°Π²Π°Π» ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ Ρ Π½ΡΠΆΠ½ΡΠΌΠΈ ΡΠΎΠ»ΠΈΠΊΠ°ΠΌΠΈ, ΠΊΠΎΠΌΠΌΠΈΡΠΈΠ» ΠΈΡ
Π² Π²Π΅ΡΠΊΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π° Π½ΠΎΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΎ fetch
ΠΈ checkout
.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°:
- ΠΠ΅ΡΠ΅Π΄Π°Π²Π°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ Π΄Π΅Π»ΡΡΠ°-ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΈΠ΅ΠΉ.
- ΠΠ±ΡΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΡ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΡΠΉ Π±Π»ΠΎΠ± Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ².
- Π’ΡΡΡΡΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ² Π±Π΅Π· Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°.
ΠΠΈΠΊ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°Π» Π² ΡΠ°Π½Π½Π΅ΠΌ ΡΠ°Π·Π²ΠΈΡΠΈΠΈ Git (Π΄ΠΎΠ±Π°Π²ΠΈΠ» SSL Π² http-fetch, Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ, HTTP-push). ΠΠ³ΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΡ ΠΏΡΠΈΠ½ΡΠ»ΠΈ ΡΠ΅ΡΠ΅Π· 6 ΠΌΠ΅ΡΡΡΠ΅Π² ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΠΈΠ½ΡΡΠ°.
ΠΠΎΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ Git ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠ·Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈ ΠΌΠ΅Π½Ρ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Git Community Book, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Git Internals, ΡΠ°ΠΉΡΠ° git-scm.com ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ Pro Git β Π²ΡΠ΅ ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΌΠ΅Π½Ρ Π² GitHub.
ΠΡΡΠΎΠΊΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Git
ΠΠΎΡΠ΅ΠΌΡ Β«Π³Π»ΡΠΏΡΠΉ ΡΡΠ΅ΠΊΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°Β» ΡΡΠ°Π» ΡΠ°ΠΌΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ? ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Git Π½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π»ΡΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΅ΡΠ²ΡΠ΅ ΠΌΠ΅ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΠ»ΠΈ ΠΊΡΠ°ΠΉΠ½Π΅ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌΠΈ β Π΄Π°ΠΆΠ΅ Π·Π½Π°ΡΠΎΠΊΠΈ Β«ΡΠ°Π½ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΡ
Β» ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π΅ ΡΠ·Π½Π°Π»ΠΈ Π±Ρ ΡΠ°Π½Π½ΠΈΠ΅ rev-tree
, mkdelta
ΠΈΠ»ΠΈ tar-tree
.
Git Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΡΡ ΠΊΠ°ΠΊ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΠΎΡΡΡΠΎΡΡ ΡΠ²ΠΎΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ. ΠΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ Β«ΡΠ°ΡΡΠΎΡΠΎΠ²ΡΠ΅Β» ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ, ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΏΡΠΎΡΠ°ΡΠΈΠ²Π°Π»ΠΈΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ Π³ΠΎΠ΄Π°ΠΌΠΈ, Π½Π°ΡΠΈΠ½Π°ΡΡΡ ΠΊΠ°ΠΊ ΡΠ΅Π»Π»-ΡΠΊΡΠΈΠΏΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ.
Π ΡΠ°Π½Π½ΠΈΠ΅ Π΄Π½ΠΈ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΠΈΠ½ΡΡΠ°. Π‘Π°ΠΌΡΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ Π±ΡΠ» git-pasky
, ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ²ΡΠΈΠΉΡΡ Π² "Cogito" ΠΠ΅ΡΡΠ° ΠΠ°ΡΠ΄ΠΈΡΠ°, Π²ΡΠΏΡΡΠ΅Π½Π½ΡΠΉ Π²ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ ΠΏΠΎΡΠ»Π΅ ΡΠ°ΠΌΠΎΠ³ΠΎ Git.
Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π³ΡΠ°Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Β«ΡΠ°ΡΡΠΎΡΠΎΠΌΒ» ΠΈ Β«ΡΠ°Π½ΡΠ΅Ρ Π½ΠΈΠΊΠΎΠΉΒ» ΡΠ°Π·ΠΌΡΠ²Π°Π»Π°ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π² ΡΠ΄ΡΠ΅ Git ΡΡΠ°Π»ΠΈ ΠΊΠΎΠ½ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ. Π 2007 Π³ΠΎΠ΄Ρ Cogito Π±ΡΠ» Π·Π°Π±ΡΠΎΡΠ΅Π½, ΠΈ ΠΈΠ΄Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Β«ΡΠ°ΡΡΠΎΡΠΎΠ²ΠΎΠ³ΠΎΒ» ΡΠ»ΠΎΡ Π½Π°Π΄ Git Π±ΡΠ»Π° ΠΎΡΡΠ°Π²Π»Π΅Π½Π°.
ΠΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈ ΠΏΠΈΡΡΠΌΠ° Π΄Π²Π°Π΄ΡΠ°ΡΠΈΠ»Π΅ΡΠ½Π΅ΠΉ Π΄Π°Π²Π½ΠΎΡΡΠΈ, ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ Π·Π° ΡΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½Π°Ρ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ.
ΠΠ΅ΡΠ²ΡΠΉ git log
ΠΠ΅ΡΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ git log
Π±ΡΠ»Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΎΠΉ ΠΈ Π½Π°Π·ΡΠ²Π°Π»Π°ΡΡ git-rev-list --pretty
:
#!/bin/sh git-rev-list --pretty HEAD | LESS=-S ${PAGER:-less}
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Git Π½Π°ΡΠΈΠ½Π°Π»ΠΈΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π½Π° Shell ΠΈΠ»ΠΈ Perl, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π»ΠΈ Π½Π° C Π΄Π»Ρ Π»ΡΡΡΠ΅ΠΉ ΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ.
ΠΡΠ²ΠΎΠ΄ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ git log
Π²ΡΠ³Π»ΡΠ΄Π΅Π» ΠΏΠΎΡΡΠΈ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΡΠ΅ΠΉΡΠ°Ρ.
$ git-log-script commit d9f3be7e2e4c9b402bbe6ee6e2b39b2ee89132cf Author: Junio C Hamano <gitster@pobox.com> Date: Fri Apr 5 12:34:56 2024 -0700 Fix bug
Π ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ git rebase
ΠΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ rebase
Π½Π°ΡΠ°Π»Π°ΡΡ Π² ΠΈΡΠ½Π΅ 2005 Π³ΠΎΠ΄Π° Ρ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠΈΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΠΠΆΡΠ½ΠΈΠΎ Π₯Π°ΠΌΠ°Π½ΠΎ ΠΈ ΠΠΈΠ½ΡΡΠΎΠΌ Π’ΠΎΡΠ²Π°Π»ΡΠ΄ΡΠΎΠΌ.
ΠΠΆΡΠ½ΠΈΠΎ ΠΎΠΏΠΈΡΠ°Π» ΡΠ²ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ, Π²ΠΊΠ»ΡΡΠ°Π²ΡΠΈΠΉ:
- ΠΠ°ΡΠΈΠ½Π°Ρ Ρ HEAD-Π²Π΅ΡΠΊΠΈ ΠΠΈΠ½ΡΡΠ°.
- ΠΠΎΠ²ΡΠΎΡΡΡ ΡΠΈΠΊΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
- ΠΠ°ΠΏΡΡΠΊΠ°Ρ
git format-patch
(ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² Π΄Π΅ΡΠ΅Π²Π΅ ΠΠΈΠ½ΡΡΠ°) Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΠ°ΡΡΠ΅ΠΉ. - ΠΡΠΏΡΠ°Π²Π»ΡΡ ΠΈΡ ΠΈ ΠΆΠ΄Ρ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ½ΡΡΡ.
- ΠΠ΅Π»Π°Ρ
pull
ΠΈΠ· Π²Π΅ΡΠΊΠΈ ΠΠΈΠ½ΡΡΠ°. - ΠΡΠ±ΡΠ°ΡΡΠ²Π°Ρ ΡΠ²ΠΎΠΉ HEAD, Π΄Π΅Π»Π°Ρ HEAD ΠΠΈΠ½ΡΡΠ° ΡΠ²ΠΎΠΈΠΌ HEAD, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΎΡ
ΡΠ°Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π²Π½Π΅Ρ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠΎΡΠΊΠ° ΠΎΡ Π½Π΅Π³ΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
jit-rewind
. - ΠΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ ΠΏΠ°ΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΠΈΠ½ΡΡ ΠΎΡΠΊΠ»ΠΎΠ½ΠΈΠ», ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΠΈΡΠ°Ρ Ρ
ΠΎΡΠΎΡΠΈΠΌΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ Π½Π° ΠΏΠ°ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
jit-patch
ΠΈjit-commit -m
. - ΠΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡ ΠΊ ΡΠ°Π³Ρ 2.
ΠΠΈΠ½ΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ re-base
, ΠΊΠΎΡΠΎΡΠ°Ρ Π±Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠ»Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΠ²ΠΎΠΉ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ. Π’Π°ΠΊ ΡΠΎΠ΄ΠΈΠ»Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ, ΡΡΠ°Π²ΡΠ°Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠ»ΡΡΠ΅Π²ΡΡ
Π² Git.
ΠΠ°ΠΊ ΠΡΡΠΌΠΈΠ½ΠΎΠ³ ΡΡΠ°Π» ΡΠ°ΡΡΡΡ Git ΠΈ ΠΏΠΎΡΠΎΠ΄ΠΈΠ» ΠΠΊΡΠΎΠΊΠΎΡΠ°
ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π° "Octopus" Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠ°ΡΡΡΠ»ΠΊΠΈ Git ΠΎΡΠ½ΠΎΡΠΈΠ»ΠΎΡΡ ΠΊ ΠΎΡΠΎΠ±ΠΎΠΌΡ ΡΠΈΠΏΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΌΠΈ. Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ "octopus merge" ΡΡΠ°Π» ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠ΅ΠΉ ΡΠ»ΠΈΡΠ½ΠΈΡ Π² Git.
Π’ΠΎΠΌ Π½Π°ΡΠ°Π» ΠΈΡΠΊΠ°ΡΡ ΠΊΠ»ΠΈΠΏΠ°ΡΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡΡΠΌΠΈΠ½ΠΎΠ³Π°, ΠΈ ΡΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ Π‘Π°ΠΉΠΌΠΎΠ½Π° ΠΠΊΡΠ»ΠΈ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ ΡΠ°ΠΌΡΠΌ ΠΌΠΈΠ»ΡΠΌ ΠΈΠ· Π²ΡΠ΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ². Π’Π°ΠΊ ΡΠΎΠ΄ΠΈΠ»ΡΡ "Octocat" (ΠΠΊΡΠΎΠΊΠΎΡ) β ΡΠ°Π»ΠΈΡΠΌΠ°Π½ GitHub, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΡΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡΡΡΠ΅ΡΡΠ²ΠΎ Ρ ΡΡΠΏΠ°Π»ΡΡΠ°ΠΌΠΈ ΠΎΡΡΠΌΠΈΠ½ΠΎΠ³Π°.
ΠΡΠ΄ΡΡΠ΅Π΅ Git
ΠΠ°Π±Π°Π²Π½ΠΎ, ΡΡΠΎ Ρ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Git Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΡΡ. GitButler ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Git Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΏΡΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ git Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΡΠ΅ΡΠ΅, Git ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΠΊΠΈ Ρ ΠΎΡΠΎΡΠΈΠΌ Β«ΡΡΠΏΡΠΌ ΡΡΠ΅ΠΊΠ΅ΡΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°Β», ΠΊΠ°ΠΊ ΠΈ Π·Π°Π΄ΡΠΌΡΠ²Π°Π» ΠΠΈΠ½ΡΡ.
ΠΡΠ°ΠΊ, Ρ Π΄Π½Π΅ΠΌ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ, Git. Π’Ρ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΡΠ°Π½Π½ΡΠΉ. Π’Ρ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²ΡΠ΅.