我无法找到问题的相关答案。我现在有两个分支机构:
master
develop
提交并推送到服务器后所有修改(到develop
分支)我想用master
分支更新develop
分支。在master
与develop
合并master
之后,我意外地搞砸了 - git reset --hard HEAD
现在拥有来自两个分支的所有内容,而这不是我想要的。
如何恢复本地仓库中的所有内容?我已经尝试了strcmp
,但似乎没有帮助。
答案 0 :(得分:3)
解决方案1:
您可以将分支重置为合并之前的状态,如果您找到它所在的提交。
使用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>
注意:您可能会遇到一些必须手动取消合并的冲突,就像正常合并时一样。
答案 1 :(得分:2)
您可以尝试签出特定提交:
git checkout [revision-hash] .
在合并之前传递提交的哈希值
答案 2 :(得分:2)
目前已检出主分支:
git reset --hard develop
将切换到开发分支,丢失所有来自master的更改,除了那些已经包含在develop分支中的更改。