π§ ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ deleted git: ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΈ ΡΠΎΠ²Π΅ΡΡ π
Π§ΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² Git, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reflog Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π²ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. ΠΠ°ΡΠ΅ΠΌ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ Ρ ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ, ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git checkout Ρ ΡΡΠΈΠΌ Ρ ΡΡΠ΅ΠΌ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
$ git reflog
$ git checkout <commit_hash>
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠΎΠΏΡΠΎΡ: "ΠΊΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ deleted git".
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π² Git ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠΉ ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ. ΠΠ½ΠΎΠ³Π΄Π° ΠΌΡ ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Ρ ΠΎΡΠ΅Π»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ, ΠΈΠ»ΠΈ ΠΆΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΡ. Π ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π² Git. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ.
ΠΡΠΌΠ΅Π½Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² Git
ΠΡΠ»ΠΈ Π²Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Ρ Π² Git ΠΈ Π΅ΡΠ΅ Π½Π΅ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git checkout
Π΄Π»Ρ ΠΈΡ
Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΈ Π²Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ Π² ΡΠ°Π±ΠΎΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ.
git checkout -- path/to/file
ΠΠ΄Π΅ path/to/file
- ΠΏΡΡΡ ΠΊ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ. ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
ΠΡΠΌΠ΅Π½Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Git
ΠΡΠ»ΠΈ Π²Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Git ΠΈ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡ
Π²Π΅ΡΠ½ΡΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reflog
Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠ°Π½Π΄. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅.
git reflog
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Ρ ΠΈΡ Ρ Π΅ΡΠ°ΠΌΠΈ. ΠΡΠ±Π΅ΡΠΈΡΠ΅ Ρ Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ, ΠΈ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ.
ΠΠ°ΡΠ΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git cherry-pick
, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΊ Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅.
git cherry-pick <commit-hash>
ΠΠ΄Π΅ <commit-hash>
- ΡΡΠΎ Ρ
Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² Π²Π°ΡΠ΅ΠΉ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅.
ΠΡΠ²ΠΎΠ΄
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π² Git. ΠΡΠ»ΠΈ Π²Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git checkout
Π΄Π»Ρ ΠΈΡ
Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ Π²Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reflog
ΠΈ git cherry-pick
Π΄Π»Ρ ΠΈΡ
Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
ΠΡΠ΅Π³Π΄Π° Π±ΡΠ΄ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Ρ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ Π² Git ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ.