分离的磁头,删除推送的合并等

时间:2018-10-10 21:23:23

标签: git github git-merge git-revert

我正试图修复一个已经摆脱重创的git存储库。这是问题。

  • 创建了一个不带分支的独立头,并以其为主要角色对其进行了提交
  • 应该在其他分支上的更改是对真正的母版进行的
  • 超脱的脑袋被合并为主人

需要完成的事情:

  1. 删除合并。我尝试对master上的先前提交进行硬重置,但最终将分离的head的提交挤压到master分支中。
  2. 如果可能,请使分离的头及其提交master分支
  3. 将头分开一个单独的分支后,在master中进行所有提交

在下图中,蓝色是主色,红色是分离的头。

enter image description here

这是第二张图片供参考。

enter image description here

1 个答案:

答案 0 :(得分:1)

只要没有其他人克隆过您的存储库,您就应该能够做到这一点。

从当前的母版中创建一个分支:

git branch <branch name> <commit hash for last commit on master before the merge>

掌握分离的头分支

git checkout master
git reset --hard <commit hash of last detached head commit before merge>

现在在本地,您应该处于所需的状态,但是本地主机的历史与远程主机的历史不同。您可能是安倍晋三,只是强行推动它而忽略了远程主机

git push -f

但是,默认情况下,像gitlab和github这样的服务将阻止您执行此操作。

如果其他任何人都拥有存储库的本地克隆,这将给他们带来问题,如果您能够与所有受影响的人进行交流,则最简单的修复方法就是进行新的克隆。