π‘Git: ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Π² ΡΠ°ΠΉΠ»Π΅ - ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΠΎΠ²Π΅ΡΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ
Π§ΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Π² ΡΠ°ΠΉΠ»Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Git, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git diff <ΠΈΠΌΡ_ΡΠ°ΠΉΠ»Π°>
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
Git: ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Π² ΡΠ°ΠΉΠ»Π΅
Git β ΡΡΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Git ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² ΡΠ°ΠΉΠ»Π΅. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Git.
1. git diff
ΠΠΎΠΌΠ°Π½Π΄Π° git diff
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ. ΠΠ½Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΡΠ°ΠΉΠ»Π° ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΠΎΡ
ΡΠ°Π½Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ. ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git diff path/to/file
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ path/to/file
ΠΏΡΡΠ΅ΠΌ ΠΊ ΡΠ°ΠΉΠ»Ρ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅, ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ.
2. git log
ΠΠΎΠΌΠ°Π½Π΄Π° git log
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΡΠΎΠ½ΡΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ». ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git log -- path/to/file
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ path/to/file
ΠΏΡΡΠ΅ΠΌ ΠΊ ΡΠ°ΠΉΠ»Ρ, ΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ
Π΄Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½. ΠΠ»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ "ΡΡΡΠ΅Π»ΠΊΠ° Π²Π²Π΅ΡΡ
" ΠΈ "ΡΡΡΠ΅Π»ΠΊΠ° Π²Π½ΠΈΠ·". ΠΠ°ΠΆΠΌΠΈΡΠ΅ "q", ΡΡΠΎΠ±Ρ Π²ΡΠΉΡΠΈ ΠΈΠ· ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
3. git show
ΠΠΎΠΌΠ°Π½Π΄Π° git show
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ
. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git show commit-hash:path/to/file
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ commit-hash
Ρ
ΡΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π° path/to/file
ΠΏΡΡΠ΅ΠΌ ΠΊ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ. ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
4. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, Git ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π°ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ . ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Git Π²ΠΊΠ»ΡΡΠ°ΡΡ:
- Git GUI - ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Git Π΄Π»Ρ Windows;
- gitk - Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΠΈΠ»ΠΈΡΠ° Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Git;
- Sourcetree - Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ Git Π΄Π»Ρ Windows ΠΈ macOS.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΡΠ΅ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ ΠΈ Π½Π°Π²ΠΈΠ³ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
ΠΡΠ²ΠΎΠ΄
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ
ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Git. ΠΠΎΠΌΠ°Π½Π΄Π° git diff
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ. ΠΠΎΠΌΠ°Π½Π΄Π° git log
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ
ΡΠ°ΠΉΠ» Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½. ΠΠΎΠΌΠ°Π½Π΄Π° git show
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ
. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Git GUI, gitk ΠΈ Sourcetree.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Git. Π£Π΄Π°ΡΠΈ Π² Π²Π°ΡΠ΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅!