2010-03-08 1 views
5

Если после более раннего фиксации произошли коммиты и многие изменения, существует ли простой способ вернуть все в точное состояние этого более раннего фиксации?Git: Как вернуть все точно в состояние предварительного коммита?

Если да, можно ли легко вернуться к текущему состоянию, если я так хочу?

Я понял, что эта старая фиксация на самом деле является правильной и хочет сохранить все изменения с тех пор только для справки, но вся будущая работа будет основана на этом старом фиксации.

ответ

6

Это звучит, как вы хотите поставить текущую работу на ветке:

git branch saved_work 
git reset --hard previouscommit 

Теперь ваша saved_work ветвь содержит все послеpreviouscommit, и master перематывается до previouscommit.

1

Commit текущие изменения:

git commit 

Тогда проверка старого фиксации:

git checkout yourcommit 

Добавление опции -f уничтожит любые локальные изменения.

2

Так как вы хотите, чтобы вернуться в прежнее состояние:

git stash 
git checkout -b new_branch <tree-ish> 

выше сохранит ваши неподтвержденные изменения и позволяют создать новую ветку на конкретный коммит. Работа, как вы хотите, и позже, когда вы хотите, чтобы перейти к более раннему состоянию:

git stash 
git checkout earlier_branch 
+0

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

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