Git - 搞砸后回滚所有本地更改

Git - roll back all local changes after messing up

我找不到我的问题的任何相关答案。我现在有两个分支:

提交并推送到服务器所有修改(到 develop 分支)后,我想用 develop 分支更新 master 分支。不小心我搞砸了,在 mergin masterdevelop 之后 - master 现在拥有两个分支的所有内容,这不是我想要的。

如何恢复本地存储库中的所有内容?我试过 git reset --hard HEAD 但似乎没有用。

您可以尝试签出特定的提交:

git checkout [revision-hash] .

传递合并前提交的哈希值

解决方案一:

如果您发现当时的提交,您可以将您的分支重置为合并之前的状态。

使用git reflog,它将列出您拥有的所有 HEAD。 我发现 git reflog --relative-date 非常有用,因为它显示了每次更改发生的时间。

一旦您发现该提交,只需执行 git reset --hard <commit id>,您的分支就会像以前一样。


方案二:

你可以像这样简单地git revert合并提交:

git checkout BRANCH_NAME
git revert -m 1 <merge_commit_sha>

注意:您可能会遇到一些冲突,您必须手动取消合并,就像正常合并时一样。

当前检出主分支:

git reset --hard develop

将切换到 develop 分支,丢失来自 master 的所有更改,除了那些已经包含在 develop 分支中的更改。