1

我有一个项目的 2 个遥控器存储库。

1(origin) 是我对项目进行修改的私人仓库。
2(upstream) 是我从中克隆(--bare) 的原始 github 存储库。

时不时地从上游获取更新并将其合并到master,它运行良好。
但是,当我看到提交历史记录时,会显示来自两个存储库(来源/上游)的所有提交,并且很难说出发生了什么变化。(尤其是我们的内部提交)

保持主分支历史干净的好策略是什么?

我想出了一个主意,但不确定它是否可行或足够好。

在原始存储库中创建一个分支,仅用于merging-in upstream更改。
在上游合并到这个分支(我们称之为 merge_branch)之后,我将 merge_branch 合并到 master,希望只看到 1 个聚合提交。

4

1 回答 1

1

我不清楚您当前的方法到底是什么……但是,您所描述的新想法听起来像通常的方法。

您的仓库应如下所示:

  • master具有最终状态的分支(轨道origin/master
  • upstream分支(轨道upstream/master

在开始和稍后的时间点,您将上游分支合并到 master。master 上的直接提交是你的工作。是否将“上游”分支本身也推送到这取决于您的口味origin,合并提交通常提供足够的信息。

编辑:经过讨论,你的目标越来越清楚了。要将整个上游视为单个提交,您必须与 --squash 合并。

我认为这是对上游的不寻常使用,但可能是有道理的。如果你这样做,我建议upstream像上面那样运行分支以保持查看原始提交的能力(本地和原始提交),与壁球合并并在提交消息中注意上游分支的哈希(删除提交列表)。

于 2013-06-25T08:15:31.957 回答