有没有办法撤销 git pull,使我的源代码库恢复到 git pull 前的状态? 我想这么做是因为它合并了一些我不想合并的文件,但仅合并其他剩余文件。所以,我想取回那些文件,这可行吗?
编辑:为澄清起见,我想撤消 git 合并。
git reflog
bb3139b... HEAD@{0}: pull : Fast forward
01b34fa... HEAD@{1}: clone: from ...name...
现在,我该怎么办?执行git reset --hard
可以吗?我不想再搞砸了,所以想要详细的步骤。
git reset --hard 01b34fa
。在这种情况下,你也可以使用命令git reset --hard HEAD^
,将代码重置到当前版本的前一个提交。 - jkpgit reflog
会显示Git上所有的操作记录。关于使用git reset --hard [reflog中某次操作的SHA1值]
命令的一个担忧是,有时候我们不希望回退所有在reflog
中显示的操作,例如你想要撤销一个从远程库拉下来的、包含错误数据的主分支上的合并(这种情况经常发生),而在那次合并之后你又在其他分支上工作了。reflog
会显示其他分支上的所有更改记录。但是,只执行git checkout master
和git reset --hard [合并前主分支上某个提交的SHA1值]
命令,将仅重置当前主分支,移除从远程库拉下来的合并记录。 - Vladimir Vukanac