壁球承诺掌握保存与开发者的通信

时间:2015-02-15 06:01:24

标签: git merge

在一个常见的git工作流程中,您将master分支到功能分支或dev分支,进行许多小型提交,然后在测试工作时合并回master。

为了保持主人的历史清洁,你可以git merge --squash dev。这允许您在保持主清理的同时保留功能或开发分支中更细粒度的历史记录。

执行此操作后,您还可以返回dev,将master合并回来,然后继续工作,开始整个过程​​。如果您这样做,您会得到如下所示的历史记录:

enter image description here

问题在于,从图中不清楚主设备的尖端和设备上的HEAD~1实际上代表相同的状态(因为主设备只是开发历史的壁球)。 / p>

是否有更好的方法进行此合并,以便:

  1. 压扁提交和粒度提交的等效性是显而易见的
  2. 如果我需要查看该级别的详细信息,那么粒度提交历史记录将保留在其自己的分支中。 (这已经通过我所描述的解决方案实现了 - 我澄清说我不想牺牲这个)

1 个答案:

答案 0 :(得分:0)

我怀疑这不是你想要的答案,但我认为正常的合并是以清晰的方式传达历史的最佳方式。

特别是如果你有一个分支和提交消息的命名方案,可以很容易地看到在功能分支中进行了哪些提交,哪些提交在master中。 (合并提交自动获取其中合并分支的名称,并在提交消息中放置该名称的某种形式将使其全部易于跟踪)

merge --squash是一个隐藏的合并。这是根本问题。你已经隐藏了它,但你还是希望它被看到。