Git 合并撤消并切换到上一次提交
Git Merge Undo and Switch To Previous Commit
我刚刚通过 git commit -m "commit 1"
提交了本地更改
。然后,我做了 git pull origin
从远程分支获取更改。然后,在合并过程中,出了点问题。也就是说,在合并提交之后,我看不到我的更改。我怎样才能从当前的 commit1 恢复到 commit1?
如果我在此分支上执行 git branch checkout
,则此提交恰好落后于 HEAD 的当前位置。
使用 git reflog show
显示查看 HEAD 的历史记录,您可以将 HEAD 重置为该提交(在您的情况下可能 git reset HEAD@{1}
.
最安全也可能是最干净的方法是交互式变基:
git rebase -i HEAD^^
或者,
git reset --hard commit-id
git push
您可能需要 git push -f
。
在这种情况下无法帮助您恢复本地更改,但将来您可以执行以下操作以避免丢失:
git stash
git pull
git stash pop
好吧,如果您暂时只看到以前的版本,您可以随时查看 commit 1
从 git log
开始并找到您的提交哈希
然后,检查提交:
git checkout acb1234
您将看到旧版本的源代码。
如果你真的想在合并前返回
git reset --hard acb1234
如果您推送合并,您可以做的是 git 恢复:
git revert -m 1 1a2b3c # the merge hash
我刚刚通过 git commit -m "commit 1"
。然后,我做了 git pull origin
从远程分支获取更改。然后,在合并过程中,出了点问题。也就是说,在合并提交之后,我看不到我的更改。我怎样才能从当前的 commit1 恢复到 commit1?
如果我在此分支上执行 git branch checkout
,则此提交恰好落后于 HEAD 的当前位置。
使用 git reflog show
显示查看 HEAD 的历史记录,您可以将 HEAD 重置为该提交(在您的情况下可能 git reset HEAD@{1}
.
最安全也可能是最干净的方法是交互式变基:
git rebase -i HEAD^^
或者,
git reset --hard commit-id
git push
您可能需要 git push -f
。
在这种情况下无法帮助您恢复本地更改,但将来您可以执行以下操作以避免丢失:
git stash
git pull
git stash pop
好吧,如果您暂时只看到以前的版本,您可以随时查看 commit 1
从 git log
开始并找到您的提交哈希
然后,检查提交:
git checkout acb1234
您将看到旧版本的源代码。
如果你真的想在合并前返回
git reset --hard acb1234
如果您推送合并,您可以做的是 git 恢复:
git revert -m 1 1a2b3c # the merge hash