我遇到了一个糟糕的合并问题,直到我将其推送到GitHub后才意识到这是个问题,现在我不知道该如何撤销/还原它。
故事是这样的:
我打开了两个不同的分支,并向这些分支提交了几个更改。过了一段时间,我决定将这些分支合并回主分支,我使用$ git merge branch_name
来实现这个目的。我合并了第一个分支,然后检查了主分支的日志:所有这个分支上的提交都在主分支上了。然后我继续使用相同的命令合并了第二个分支。然后我再次检查了主分支的日志,在那里我看到了我合并的分支上的提交,其中包括以下注释的提交:“merge branch branch_name”。当我合并另一个分支时没有包含这样的注释。
长话短说,问题在于git将第一个分支的提交合并到主分支上,就好像它们已经是主分支的提交一样。当你从'GitHub'或'gitg'中查看网络图形时,没有留下第一个分支的痕迹,但它的提交显示为主分支的提交。第二个分支没有问题:它被单独显示并按预期合并。另外请注意,在运行合并命令后,我通过$ git branch -d branch_name
删除了分支,好像这是最紧急的事情一样,不幸的是。
现在我想回到运行两个连续合并之前的位置。任何帮助都会受到赞赏。如果您对为什么会发生这种情况进行评论,那也很愉快。
git reflog
可能会对你有所帮助;第二,无论你做什么,如果你撤销并重新执行非快进合并,你最终将拥有一个非快进推送,这意味着你必须强制推送到 Github。这通常是不好的,因为它会给所有在此期间拉取存储库的人带来严重的麻烦。 - Jonas Schäfer