我错误地将我的git repo与其自己的一个遥控器合并。我试图按照this question中的说明撤消这一点,但我只收到回复:
$ git revert -m 1 <commit id>
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
我该如何解决这个问题?
答案 0 :(得分:0)
在做任何事情之前阅读整个答案,如果您觉得使用可能具有破坏性的命令感觉不安全,最好备份git repo(整个项目文件夹)。
如果您在合并错误后仍未推送您的更改:
如果您键入git reflog
,您应该在错误合并之前获得一个标记您的历史记录的修订版本。如果您不关心自那个时间点以来您可能做过的任何更改(包括本地提交/未提交的文件),如果XYZ是您在审核时所喜欢的引用,我会使用git reset --hard XYZ
git reflog
1}}。
这会让你的历史看起来没有什么不好甚至发生,如果我没有在任何地方推动任何改变,我宁愿这样做(因为你不想真的想与其他人一起搞砸git历史,他们从遥控器上拉出你把你的不良改变推到了一起。
如果您在错误合并后推送了更改:
此处的官方文档中有许多提示:https://github.com/git/git/blob/master/Documentation/howto/revert-a-faulty-merge.txt(该页面链接到man git revert
)。
我建议您浏览大部分内容以找到一些一般性推理并找到您想要尝试的案例。 git revert
保留您当前的历史记录并构建到其上,与git reset
相反,core
让您回溯历史记录并删除&#39;它的一部分。如果您备份了git存储库,那么您应该能够在游戏中学习一两件事:)