如何处理Git不连续性?

时间:2012-09-05 06:14:47

标签: git

让我们说在我们的Git存储库中,我们在分支master上工作了一段时间。然后,我们大多数人开始在coolfeature分支机构工作,而一些开发人员继续master

现在,在master工作的开发人员已经失去了兴趣,而且我们分叉后开发的内容并不是很重要。但是我们希望主要的开发分支再次被称为master。从概念上讲,我们基本上喜欢树看起来像这样:

*--master--X      ----master
 \               /
  --coolfeature--

实现这一目标的最简单方法是什么?我们真的不想尝试合并coolfeature,我们很高兴标记为X的提交完全没有意义。

2 个答案:

答案 0 :(得分:3)

使用新的主分支执行强制推送。

git push -f origin master

其他人获取代码并执行重置

git fetch origin master
git reset --hard origin/master

答案 1 :(得分:2)

我会这样做,避免强行推动:

  1. 为您不关心的提交X创建标记。 (你会在一分钟内看到原因。
  2. 执行主分支上所有提交的git revert,因为您分支了coolfeature。这会将存储库恢复到您分叉时的状态,但它不会重写历史记录,因此如果他们没有收到备忘录,那么任何人的存储库都会被破坏。
  3. 将coolfeature合并到主人身上。
  4. 关于标记X的要点是在完成所有更改之前标记该点。标签很便宜,在某些时候你可能想知道你退出提交的点并做了这样的改变。