π ΠΠ°ΠΊ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΡΠ°ΠΉΠ» ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² git π
Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΡΠ°ΠΉΠ» ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Git, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ:
- Π£Π·Π½Π°ΠΉΡΠ΅ Ρ ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ ΡΠ°ΠΉΠ». ΠΡΠΎΡ Ρ ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
- Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ Ρ ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½.
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git checkout, ΡΡΠΎΠ±Ρ Π²Π΅ΡΠ½ΡΡΡ ΡΠ°ΠΉΠ» ΠΊ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ "commit_hash" Π½Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Ρ ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°:
- Π€Π°ΠΉΠ» Π±ΡΠ΄Π΅Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
git log
git checkout commit_hash file_name
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ "commit_hash" Π½Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ Ρ ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΈ "file_name" Π½Π° ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΊΠ°ΡΠΈΡΡ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΡΠ°ΠΉΠ» ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Git
Git β ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· Π²Π°ΠΆΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Git ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΡΠ°ΠΉΠ» ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Git.
Π¨Π°Π³ 1: ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Ρ ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π²Π΅ΡΠ½ΡΡΡΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git log
ΠΡΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Ρ ΠΈΡ Ρ ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, Π°Π²ΡΠΎΡΠ°ΠΌΠΈ, Π΄Π°ΡΠ°ΠΌΠΈ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Π½ΡΠΆΠ½ΡΠΉ Π²Π°ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ Ρ ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π¨Π°Π³ 2: ΠΡΠΊΠ°Ρ ΡΠ°ΠΉΠ»Π° ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π΅ΡΡΡ Ρ ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΡΠ°ΠΉΠ» ΠΊ ΡΡΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
git checkout <commit-hash> -- <file-path>
ΠΠ΄Π΅ΡΡ <commit-hash> - Ρ ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π° <file-path> - ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΊΠ°ΡΠΈΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΡΠ°ΠΉΠ» "script.js" ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ Ρ Ρ ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ "abc123", Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git checkout abc123 -- script.js
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΠΉΠ» "script.js" Π±ΡΠ΄Π΅Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π΄ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ΅ "abc123".
ΠΡΠΈΠΌΠ΅Ρ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Git Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ "index.html". ΠΡ Π²Π½Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ» ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΈ Ρ ΠΎΡΠΈΠΌ Π²Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡΠ΅ "xyz456". ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ:
git log
ΠΠΎΠΏΠΈΡΡΠ΅ΠΌ Ρ ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° "xyz456".
git checkout xyz456 -- index.html
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΠΉΠ» "index.html" Π±ΡΠ΄Π΅Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π΄ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ΅ "xyz456".
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠΊΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Git - Π²Π°ΠΆΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ "git checkout" Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΈ ΠΏΡΡΠΈ ΠΊ ΡΠ°ΠΉΠ»Ρ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅.
ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΠΏΡΠΈ ΠΎΡΠΊΠ°ΡΠ΅ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠ΅ΡΡΡΡ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅Π³Π΄Π° ΠΈΠΌΠ΅ΠΉΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ.