嘿,我是git的新手,需要撤销一个pull,有人可以帮忙吗?所以我做的是...
- git commit
- git stash
- git pull --rebase
- git stash pop
这创建了一堆冲突并出了点问题。现在进行'git stash list'显示我的stash仍在那里。是否可能将我的存储库还原回到刚刚进行git commit的那个时刻。因此,我的repo只包含我所做的更改,而不是来自服务器的任何新内容?
嘿,我是git的新手,需要撤销一个pull,有人可以帮忙吗?所以我做的是...
这创建了一堆冲突并出了点问题。现在进行'git stash list'显示我的stash仍在那里。是否可能将我的存储库还原回到刚刚进行git commit的那个时刻。因此,我的repo只包含我所做的更改,而不是来自服务器的任何新内容?
实际上,为了使这个过程更容易,Git 保留了一个名为 ORIG_HEAD
的引用,指向 rebase 之前的位置。所以,操作起来就像这样简单:
git reset --hard ORIG_HEAD
git reflog
命令可以查看过去HEAD指向的提交列表。
git checkout -b after-commit HEAD@{1} # or the commit you want to recover
在该位置创建一个新的分支并将其检出
git reset --merge
这样就不需要在进行拉取之前使用git commit和git stash了(但是不确定rebase是否适用)。
该命令将返回一个工作区,其中包含未提交的更改,以便在冲突的拉取之前将其恢复到之前的状态。
git log -g
找到你想要回溯的提交索引,然后执行 git checkout
命令即可。pull --rebase
会在你刚刚拉取的内容之上回放你的提交记录;在这种情况下,你不能只是检出你的旧提交记录,因为它在你刚刚拉取的提交记录之上。 - Achal Dave