git rebase
是否比git merge
更容易发生冲突?我以前听说过它,并在this post
我在这里根据轶事进行推测,但我怀疑围绕反叛的普遍焦虑源于两个主要的地方:
- 由于git rebase的机制,合并冲突更频繁,似乎更难处理
醇>
作者没有详细说明这种说法,但这不是我第一次听到它。
我已经听说并理解了这一点,因为rebase通过提交重放提交,你会多次遇到相同的冲突,但我从未遇到过这种情况。也许rerere
行为现在默认为git rebase
?
我正在尝试在我的团队中提出rebase政策,但如果准确的话,我想解决这个问题。
老实说,我预计会有相同数量的冲突,因为两个分支的更改都会导致冲突,无论是否进行重组或合并。换句话说,冲突不是由最后的分支收敛引起的,而是由同一行的并行变化引起的
答案 0 :(得分:9)
如果您有多个提交,那么您最终会遇到与rebase的更多冲突。这是因为当您进行rebase时,您必须为每次提交解决冲突。这意味着如果您尝试在主服务器之前重新提交5个提交的分支,并且在这5个提交中的第一个中引入了合并冲突,则您必须在以下每个提交中解决该冲突
重新定位通常应解决上述问题。另外值得一提的是,如果你想压缩到一个提交,那么有一个比rebase更简单的策略。
假设您要在master中合并5个提交,但它只能在一个提交中使用描述性消息轻松描述一个功能。
git fetch
git merge origin/master
git reset --soft origin/master
git commit
如果您只想要一次提交,这将更容易,并完成与rebasing相同的事情。