【发布时间】:2017-11-10 03:43:01
【问题描述】:
目标:保持master的干净历史,同时保持中间提交。
例如,让我们从一个主分支开始:
M1 --- M2 --- M3
^
master
我在新分支上处理功能/错误/任何内容:
M1 --- M2 --- M3
^ \
| \- F1 --- F2 -- F3
| ^
master feature
当我合并到 master 时,我希望 M3 成为父级,但也要保持从 M3 到新提交的“迭代”。这可以通过merge --no-ff 来完成:
M1 --- M2 --- M3 ----------------------- M4
\ / ^
\- F1 --- F2 -- F3-/ master
^
feature
这几乎就是我的想法。我遇到的问题是,对于 git,据我所知,M3 和 F3 都是 M4 的“平等”父母,现在都是分支 master 的一部分。
我想要的是能够显示(使用git log)没有功能分支(F1-F3)的主分支,以便对分支有更清晰的视图。理想情况下,这将是默认设置。但也可以显示 F1 F3 提交,以便在需要时查看更“详细”的历史记录。
有没有办法在git中拥有这个或接近这个的东西?
【问题讨论】:
-
正如 Alejandro C. 所说,使用
--first-parent仅关注第一个父链接。请注意,这在合并时需要一些纪律(您已经注意到的--no-ff,并避免使用典型的git pull,因为它使其他人的提交看起来像作为第二父级合并的功能分支)。
标签: git branch git-merge git-log