πŸ” Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния, ΡƒΠΆΠ΅ сдСланныС Π² git: подробная инструкция с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния, ΡƒΠΆΠ΅ сдСланныС Π² Git, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git revert.

git revert <commit>

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° создаст Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отмСняСт измСнСния ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, сохраняя ΠΏΡ€ΠΈ этом ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

git revert HEAD

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния, ΡƒΠΆΠ΅ сдСланныС Π² Git

Git - это распрСдСлСнная систСма управлСния вСрсиями, которая позволяСт ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ измСнСния Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ ΠΈ эффСктивно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ. Π’ процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ зафиксированы Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Git.

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ зафиксированы, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git checkout. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° позволяСт Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊ послСднСму зафиксированному ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ. НапримСр:

git checkout -- file.txt

Π—Π΄Π΅ΡΡŒ file.txt - это имя Ρ„Π°ΠΉΠ»Π°, измСнСния Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° удаляСт всС измСнСния Π² Ρ„Π°ΠΉΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ зафиксированы.

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡƒΠΆΠ΅ зафиксированных Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

Если измСнСния ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ зафиксированы Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git revert ΠΈ git reset.

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git revert

Команда git revert создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отмСняСт измСнСния ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния, сдСланныС Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ abcd123, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git revert abcd123

Git создаст Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отмСняСт измСнСния, внСсСнныС Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚. Π­Ρ‚ΠΎ бСзопасный способ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ история ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ.

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git reset

Команда git reset позволяСт пСрСнСсти ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, отмСняя измСнСния, сдСланныС послС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. БущСствуСт нСсколько ΠΎΠΏΡ†ΠΈΠΉ для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git reset, Π½ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС - это --soft, --mixed ΠΈ --hard.

  • --soft позволяСт ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния, оставляя Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ прСдоставляя Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… снова;
  • --mixed отмСняСт измСнСния ΠΈ сбрасываСт индСкс, принимая ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ;
  • --hard ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ отмСняСт измСнСния ΠΈ удаляСт всС Ρ„Π°ΠΉΠ»Ρ‹, связанныС с ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ, ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ рСпозитория, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ abcd123 Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ сущСствовал, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git reset --hard abcd123

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны ΠΏΡ€ΠΈ использовании ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git reset --hard, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° Π½Π΅ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ всС измСнСния послС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

Π’Ρ‹Π²ΠΎΠ΄

Git прСдоставляСт нСсколько способов ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния, сдСланныС Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Команда git checkout позволяСт ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ… Π΄ΠΎ ΠΈΡ… зафиксирования. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ git revert ΠΈ git reset ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния, ΡƒΠΆΠ΅ зафиксированныС Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° зависит ΠΎΡ‚ вашСй потрСбности ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Git: Как ΡΡ‚Π΅Ρ€Π΅Ρ‚ΡŒ измСнСния history ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

5.1 Git - Reset - ЖСсткий reset --hard: ΠΎΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

#7 Π£Ρ€ΠΎΠΊΠΈ Git+GitHub - ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ VS Code Workspace ΠΈ ΠΊΠ°ΠΊ ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ? πŸ€”

πŸ” ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ открываСтся VS Code? πŸ€”

πŸ” Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния, ΡƒΠΆΠ΅ сдСланныС Π² git: подробная инструкция с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ