如何在git中保持主历史简短明了?

时间:2013-06-25 06:22:32

标签: git git-merge

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

1(原产地)是我的私人仓库,我对项目进行了修改 2(上游)是我克隆( - 裸)的原始github仓库。

我不时从​​上游获取更新并将其合并到master,并且效果很好 但是,当我看到提交历史记录时,会显示来自两个存储库(origin / upstream)的所有提交,并且很难说明哪些更改了位置。(特别是我们的内部提交)

保持主分支历史清洁的好策略是什么?

我提出了一个想法,但不确定它是否会起作用或足够好。

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

1 个答案:

答案 0 :(得分:1)

我不清楚你现在的方法究竟是什么......然而你所描述的新想法听起来像通常的方式。

你的回购应该是这样的:

  • master分支最终状态(跟踪origin/master
  • upstream分支(跟踪upstream/master

在开始和之后,您将上游分支合并为主分支。直接提交mastr是你的工作。无论你是否将'upstream'分支本身推送到origin,合并提交通常都足够提供信息。

编辑: 在讨论之后,你会清楚地知道你在追求什么。 要将整个上游视为单个提交,您必须与--squash合并。

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