我正在关注一个 git 分支模型,它有两个长期运行的分支(dev、master),其中功能分支主要基于 master(或有时是 dev)并合并到 dev,然后 dev 在几个特性后合并到 master(所有合并都是no-ff 合并)。
git checkout -b feature master
// work
git checkout dev
git merge --no-ff feature
// after n features
git checkout master
git merge --no-ff dev
现在经过 5 次 dev 与 master 的合并
git rev-list --left-only --count master...dev
5
给人的印象是 master 中有一些 dev 中没有的变化。
在将 dev 合并到 master 之后,我一直在通过 ff-ing dev 解决这个问题。运行中的分支将基于 ff 合并到 master 之前的 dev (下面是 391355d 而不是 ca386a7)。还有比这更好的方法吗?
* ca386a7 - Sun 05-Aug-2018 11:00 (6 days ago) (HEAD -> dev, master)
|\ Merge branch 'dev' - hIpPy
| * 391355d - Sun 05-Aug-2018 10:50 (6 days ago)
| |\ Merge branch 'cutg' into dev - hIpPy
| | * 53ca791 - Sun 05-Aug-2018 10:42 (6 days ago)
| |/ cutg: Teach to exclude binary files - hIpPy
|/|
| * 269e4c7 - Sat 04-Aug-2018 13:14 (7 days ago)
| |\ Merge branch 'while-loop' into dev - hIpPy
| | * 356f50d - Sat 04-Aug-2018 13:01 (7 days ago)
| |/ while-loop: Fix bash while loop - hIpPy
| * 56a121a - Sat 04-Aug-2018 00:20 (8 days ago)
| |\ Merge branch 'pipe' into dev - hIpPy