Вернуться к локальной фиксации? - PullRequest
24 голосов
/ 15 мая 2011

Я вытащил код из моего репо, который все испортил. Я хотел бы вернуть весь мой проект к моему последнему локальному коммиту. Как бы я это сделал?

Ответы [ 3 ]

51 голосов
/ 15 мая 2011

Это сбросит все до вашего текущего коммита (избавление от всех изменений, инсценированных или иного:

git reset HEAD --hard

Это сбросит все до предыдущего Фиксация (также избавление от всех изменений, инсценированных или других)

git reset HEAD^ --hard

^ рядом с HEAD означает один коммит до HEAD, где HEAD находится там, где вы сейчас находитесь.коммиты обратно с помощью ^^ или три с ^^^. Кроме того, вы можете использовать тильду, чтобы указать количество коммитов: ~ 3 для трех коммитов назад.

git reset HEAD~3 --hard

Также имейте в виду, что -Опция -hard означает, что эти команды будут отбрасывать любые изменения, которые у вас есть, которые не спрятаны.

11 голосов
/ 15 мая 2011

Найдите ваш последний локальный коммит в git log и запустите git reset --hard <commit sha1>.

Он удалит все локальные изменения, которые вы не зафиксировали, и переведет HEAD в этот коммит.

3 голосов
/ 20 мая 2011

git pull может извлекать и объединять несколько коммитов. Чтобы вернуться к вашему предыдущему локальному состоянию (а не вернуться к n-коммитам), вы можете использовать reflog . git reset --hard @{1}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...