恢复到之前的git提交并重新连接到它

时间:2014-11-17 11:57:35

标签: 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

这只在本地存储库中,没有远程 还有更好的方法吗?

3 个答案:

答案 0 :(得分:3)

如果您只想在特定提交中指出master

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

会奏效。请注意,这会重置分支指针您的索引和工作树。如果你想单独留下你的工作树,

$ git reset --soft 4bce33d

无法更改您的文件。新HEAD和本地目录之间的任何差异都将显示为"要提交的更改"。

答案 1 :(得分:0)

如果您领先于所需的提交,那么您可以使用此方法 点击

git log

查看您想要返回多少提交

然后点击

git reset --hard HEAD~N

会让你回到N回来提交。 N = 1,2,3等......它会让你N回头。

答案 2 :(得分:0)

将head-branch移动到之前的提交:

$ 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