2016-05-24 10 views
145

По ошибке я сделал git add . и git commit в филиале develop. Но, к счастью, я не делал git push.Как отменить последнее совершение в git

Так что я хотел вернуть его обратно в исходное состояние.

Я пробовал git reset --soft и git reset HEAD --hard, но похоже, что я испортил его.

Как исправить это? Я хочу вернуться к исходному состоянию и, возможно, сохранить изменения кода.

ответ

374

Я думаю, что вы не испортили еще. Попробуйте:

git reset HEAD^ 

Это принесет реж утверждать, прежде чем вы сделали фиксацию, HEAD^ означает, что родитель тока фиксации (тот, который вы не хотите больше), сохраняя при этом изменения из него (unstaged).

+45

плюс один для ** еще ** –

+5

Это может быть дубликат, но это является более упрощенным ответом, который я хочу в 90% случаев. Спасибо – geneorama

+0

Ты, сэр/мэм, спаситель! – Amal

72

Попробуйте просто сбросить последней фиксации

git reset --soft HEAD~1 
+1

'fatal: неоднозначный аргумент 'HEAD ~ 1': неизвестная ревизия или путь не в рабочем дереве. Используйте '-' для разделения путей от версий' – Green

+0

Попробуйте использовать git bash. Если вы используете Windows, консоль не будет работать по какой-то причине, не знаю почему. Гит Баш делает это. – Fred

+0

@Green Windows не нравится 'HEAD ~ 1', оберните его в кавычки, как' git reset --soft 'HEAD ~ 1 "' – user568458

 Смежные вопросы

  • Нет связанных вопросов^_^