Git Merge撤消并切换到上一次提交

时间:2015-12-07 19:35:43

标签: git git-commit

我刚刚使用git commit -m "commit 1"

提交了本地更改

。然后,我做git pull origin从远程分支获取更改。然后,在合并期间出现了问题。也就是说,在合并提交之后,我没有看到我的更改。如何从当前版本恢复为commit1?

如果我在此分支上git branch checkout,则此提交正好落后于HEAD的当前位置。

3 个答案:

答案 0 :(得分:1)

使用git reflog show show查看HEAD的历史记录,您可以将HEAD重置为该提交(在您的情况下可能是git reset HEAD@{1}

答案 1 :(得分:1)

最安全且可能最干净的方法是以交互方式进行改变:

git rebase -i HEAD^^

可替换地,

git reset --hard commit-id
git push

您可能必须git push -f

在这种情况下,无法帮助您恢复本地更改,但将来您可以执行以下操作以避免丢失:

git stash
git pull
git stash pop

答案 2 :(得分:1)

好吧,如果你只是临时看到你以前的版本,你可以随时查看commit 1

git log开始,找到您的提交哈希

然后,检查提交:

git checkout acb1234

您会看到旧版本的来源。

如果你真的想在合并之前回去

git reset --hard acb1234

如果推动合并,你可以做的就是git revert:

git revert -m 1 1a2b3c # the merge hash