考虑一下:
* (master) Merge feature-branch into master
|\
| * (feature-branch) Fix a comment typo
| * Add comments
| * Add feature task 3
| * Consolidate feature tasks 1 and 2
| * Add feature task 2
| * Forgot a semi-colon
| * Add feature task 1
|/
* Older commit on master
与此:
* (master, feature-branch) Add feature
* Older commit on master
第一个是的feature-branch
一个(--no-FF)合并成master
,并且底部是南瓜/将feature-branch
重新拼写到master
。首先是非常详细的,这将使回归测试更加专注,但如果您有很多功能分支,将会变得杂乱无章。如果你有很多功能,第二个是更清晰的阅读,但失去了分支定义。你自己的方法将取决于项目的大小,团队的规模等。
个人而言,我使用将其他人关心这个提交经验法则。下游没有人关心例如我在评论中修正了一个错字。我通常我把之前把第一个例子弄成这个样子(与rebase -i
):
* (master) Merge feature-branch into master
|\
| * (feature-branch) Add feature task 3
| * Add feature task 2
| * Add feature task 1
|/
* Older commit on master
分支历史中的相关内容仍然是明显的,其余的是压扁。
考虑改写你的问题来“重写未发表的历史”。重写人们可能已经建立分支机构等的事情有更多的缺点,这在你的情况下似乎并不相关。 – ThiefMaster