2014-11-17 2 views
1

Это как восстановить предыдущую фиксацию и прикрепить голову к ней?восстановить предыдущую фиксацию git и прикрепить голову к ней

git log 
git checkout 4bce33d #restore to a previous commit 
git branch -f master #create new branch at head and force branch name to master 
git checkout master  #attach head to master branch 

Это только в местном репозитории, нет пульта.
Есть ли лучший способ?

ответ

0

Для перемещения головной ветви к предыдущей фиксации:

$ git status     #make sure current directory is committed, or lose it 
$ git log --oneline --decorate #make sure there is a ref besides HEAD branch, or lose it 
$ git reset --hard 9e5e64a  #move Head-branch to specified commit 

Гастон отметил хорошую ссылку. Последняя версия находится на http://git-scm.com/book/en/v2/Git-Tools-Reset-Demystified#The-Role-of-Reset

3

Если вы просто хотите, чтобы указать master на конкретный коммит,

$ git checkout master # only if you're not already on this branch 
$ git reset --hard 4bce33d 

будет работать. Обратите внимание, что это сбрасывает как указатель отрасли , так и ваш индекс и рабочее дерево. Если вы хотите оставить свое рабочее дерево самостоятельно,

$ git reset --soft 4bce33d 

не изменит ваши файлы. Любые различия между новым HEAD и вашими локальными каталогами будут отображаться как «Изменения, которые необходимо совершить».

+0

Правильно. Правильный способ сделать любую точку перехода на другую фиксацию осуществляется через 'reset'. Вот более подробное руководство о том, как работает сброс: http://git-scm.com/blog/2011/07/11/reset.html – Gaston

0

Если вы впереди, чем ваш необходимый коммите, то вы можете использовать этот метод ударил

git log 

Смотрите, сколько совершить вы хотите вернуться

затем ударили

git reset --hard HEAD~N 

Will переместите вас на N-конец фиксации. N = 1,2,3 и т. Д. Он переместит вас на фиксацию N.

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