2015-06-13 3 views
3

Я хотел отменить изменения в текущей ветке и не совершать, я случайно вошел в команду git revert HEAD. Изменения в предыдущей ветви (совершенные ранее), по-видимому, теряются?Как отменить «git revert head»?

Как я могу отменить команду git revert HEAD?

+0

Возможный дубликат [Как отключить отмену Git?] (Http://stackoverflow.com/questions/8728093/how-do-i-un-revert-a-reverted-git- commit) –

ответ

6

Вы можете сделать

git reset --hard HEAD~1 

Он будет считать вас к фиксации перед текущей HEAD.

2

Если вы не сделали git push после возврата фиксации, тогда ответ Bidhan будет включен. Однако, если у вас есть, нажатые с этого момента, вы захотите вернуть свое возвращение, просто сделав git revert HEAD.

1

git revert просто создает новую фиксацию. Если вы не толкнули его, вы можете «отменить» его с помощью --keep:

git reset --keep HEAD~1 

--keep сбросит ГОЛОВА к предыдущей фиксации и сохранения неподтвержденных локальных изменений.

git reset --hard HEAD~1 

--hard если вместо сбросит все локальные изменения в рабочем каталоге.

Другой способ - использовать git revert еще раз. Поскольку команда git revert просто создает коммит, который уничтожает другой, вы можете запустить эту команду еще раз:

git revert HEAD

Это будет отменить предыдущую Revert и добавить еще коммитами, что если сообщение фиксации становится хаотичным.

+1

'git revert HEAD' сохранил мою работу в течение 10 дней в автономном режиме. Огромное спасибо! – Samuel

0

git reset --keep - самый прямой способ сделать это, но я, как правило, делаю много git rebase -i.

Когда интерактивный всплывает редактор с перечнем коммитов не в удаленной ветви (по умолчанию), удалите последнюю строку, которая должна быть линией, соответствующей возврату.

Вы также можете вырезать или переупорядочивать линии, а также останавливать и редактировать старые коммиты.