我有一个项目的2个遥控器存储库。
1(原产地)是我的私人仓库,我对项目进行了修改 2(上游)是我克隆( - 裸)的原始github仓库。
我不时从上游获取更新并将其合并到master,并且效果很好 但是,当我看到提交历史记录时,会显示来自两个存储库(origin / upstream)的所有提交,并且很难说明哪些更改了位置。(特别是我们的内部提交)
保持主分支历史清洁的好策略是什么?
我提出了一个想法,但不确定它是否会起作用或足够好。
在原始存储库中创建一个分支,仅用于merging-in upstream
更改
合并上游到这个分支后(让我们称之为merge_branch),我将merge_branch合并到master,希望只能看到1个聚合提交。
答案 0 :(得分:1)
我不清楚你现在的方法究竟是什么......然而你所描述的新想法听起来像通常的方式。
你的回购应该是这样的:
master
分支最终状态(跟踪origin/master
)upstream
分支(跟踪upstream/master
)在开始和之后,您将上游分支合并为主分支。直接提交mastr是你的工作。无论你是否将'upstream'分支本身推送到origin
,合并提交通常都足够提供信息。
编辑: 在讨论之后,你会清楚地知道你在追求什么。 要将整个上游视为单个提交,您必须与--squash合并。
我认为这是对上游的一种不寻常的使用,但可能有意义。如果你这样做,我建议运行上面的upstream
分支以保持能够看到原始提交(本地和原点),与壁球合并,并在提交消息中注意上游分支的哈希值(删除提交列表)。