2012-06-22 3 views
3

Возможные Дублировать:
Git undo last commitПосле использования мерзавец фиксации -a, как вернуть его обратно

После использования мерзавец фиксации, как я могу отказаться от этой фиксации и вернуться к моему исходному состоянию ?

+1

Dup http://stackoverflow.com/questions/927358/git-undo-last-commit – nhahtdh

ответ

2

Вы можете «отменить» коммит, как это с помощью:

git reset HEAD^ 

Файлы, которые вы изменили в коммит будет оставаться изменен в рабочем каталоге (см git status). Если вы используете git reset --hard HEAD^, то изменения, внесенные вами в последний коммит, будут отброшены.

4

git reset HEAD^ отменяет последнее фиксацию, и изменения, внесенные вами в этот фиксаж, будут неустановленными, но остаются.

git reset HEAD^ --hard отменяет фиксацию и отменяет изменения, внесенные в последнюю фиксацию.

Аналогичным образом, git reset HEAD^^ вернется 2 коммита.

Git Community Book - отличная справочная информация для изучения использования git.

0

Если вы хотите отменить все изменения, не имея возможности идти вперед, использовать:

git reset --hard HEAD 

Здесь, ГОЛОВА является идентификатором любого из ваших предыдущих фиксаций. Чтобы откатить только один коммит, получить идентификатор фиксации с помощью:

git log 

И затем использовать:

git reset --hard 13cca2414skfrrrereaaa 

13cca2414skfrrrereaaa - это то, что коммит идентификатор может выглядеть.

+0

Хеширование фиксации перед 'HEAD' псевдонимом как' HEAD^', что избавляет вас от необходимости искать это с помощью 'git log'. Кстати, хэш имеет алфавит '0-1a-f', поэтому ваш« id »будет недействительным, так как он использует символы s, k, f и r. – bitmask

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