我想使用rebase删除无意义的merge-commits。 与此同时,我希望在分支开发某些功能时保留分支历史记录。
基本上,
git rebase
从远程开发分支拉到我的本地开发分支。
(使用git config branch.develop.rebase true
)git merge
在功能分支中合并到本地开发分支时。我读过'不要修改已发布的提交',我担心如果我的用例违反了它。
假设以下场景。
origin / develop:
A - B - C
开发:
A - B
\
D - E - F
featureA(已发布):
A - B
\
D
\
G - H
现在,我将featureA合并到develop。
A - B
\
D - E - F - I
\ /
G - H -
然后,rebase发展(我猜D这里实际上是D',不确定E~我是E'〜我')
A - B - C
\
D - E - F - I
\ /
G - H -
现在令人费解的部分是,对已发布的功能A工作的人会怎么样?
A - B
\
D
\
G - H
\
J
答案 0 :(得分:0)
对于在推动后从远程获取的人将看到如下内容:
A - B - C
\ \
D D' - E' - F' - I'(remote/develop, remote/feature)
\ \ |
\ G' - H' - - -
\
G - H
\
J(Feature)
可能不准确,但重点是,它会使历史复杂化!总而言之,为了增加更多的混淆,你发布后也会合并+ rebase!
永远不要那样做!