Git - 搞砸后回滚所有本地更改
Git - roll back all local changes after messing up
我找不到我的问题的任何相关答案。我现在有两个分支:
master
develop
提交并推送到服务器所有修改(到 develop
分支)后,我想用 develop
分支更新 master
分支。不小心我搞砸了,在 mergin master
和 develop
之后 - 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 分支中的更改。
我找不到我的问题的任何相关答案。我现在有两个分支:
master
develop
提交并推送到服务器所有修改(到 develop
分支)后,我想用 develop
分支更新 master
分支。不小心我搞砸了,在 mergin master
和 develop
之后 - 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 分支中的更改。