7

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

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

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

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

4

2 回答 2

3

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

git push -f origin master

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

git fetch origin master
git reset --hard origin/master
于 2012-09-05T06:18:51.117 回答
2

我会这样做并避免强制推送的方式:

  1. 为您不关心的提交 X 创建一个标签。(你马上就会明白为什么。
  2. git revert自从您分支出coolfeature 以来,在master 分支上执行所有提交。这会将存储库恢复到您分叉时的状态,但它不会重写历史记录,因此如果没有收到备忘录,没有人的存储库会被破坏。
  3. 将coolfeature合并到master上。

标记 X 的要点是在您进行所有更改之前标记该点。标签很便宜,在某些时候您可能想知道您退出提交并进行此类更改的时间点。

于 2012-09-05T09:08:02.197 回答