繁体   English   中英

Git-不与--squash合并

[英]Git --no-merged with --squash

我更喜欢将功能分支与--squash合并,因为它可以让我跟踪添加功能的时间,通常它是需要bisect完整功能。 我发现随着时间的推移,这可以很好地表示稳定分支的状态。

但是,当使用--squash分支时,合并的分支将显示在--no-merged而不是在--merged下。 这有时使难以跟踪每个分支的状态(即完成时)。 我不想删除“完成的”分支,因为碰巧我不得不将它们检出以进一步平分,还有其他原因(有时问题需要多条攻击路径才能解决,而我发现它很有价值记录下来)。

可以通过以下任何一种方式:

  • --merged--no-merged承认压扁分行实际上已经被合并。

要么

  • 归档合并(压缩)分支在某种意义上说它们不会出现在任何一个列表中,但是如果我需要它们仍然可用。

实际上,如果可能的话,我确实更喜欢第二种解决方案。 有很多非当前分支的积累和隐藏它们将使在列表中查找我正在寻找的当前分支变得更加容易。

当且仅当另一个分支将它们作为直接或间接父级合并时,分支才会合并(即,当遵循提交的父级时,您有时会到达该分支)。 这也不例外。

压缩更改时,将创建一个新的提交对象,该对象一次包含该分支中的所有更改。 因此,您有一个用于该提交的“新分支”,而旧分支一直存在以保持原始提交可用。 现在,当您合并时,将合并一个提交,因此仅合并一个分支。

因此,不,当您压缩更改时,仅包含未提交的原始分支将不会被视为合并,这仅仅是因为未合并。 也没有办法更改此行为或“存档”分支。 您唯一可以做的就是改为为分支创建一个标记,作为标记,这样您就可以删除分支本身。

但是,正确的方法是仅合并完整分支。 特别是如果您要说原始分支“如果需要则仍然可用”。 如果你想,那么你应该只保留历史里面原来的分支,所以它是历史的真正的一部分。

如果您担心历史记录的可读性,则应考虑始终进行非快进合并,因此合并的分支始终总是单独出现在侧面。

您可以正常合并(不压缩)并在git命令中使用--first-parent选项。 例如

git log --first-parent

以“简化”历史。 这会将要素分支简化为仅合并提交条目,并且您将不会在合并分支上看到提交。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM