rebase
本地(私人)feature branch
是否安全,如果它已经合并到master
,我决定稍后通过{{1}调整该功能} rebasing
当前提示上的feature branch
?我知道它是master
共享分支的死刑判决,但在这种情况下是否安全,只要分支本身是私有?据我所知,此方案中的rebase
只会在公共历史记录之上添加rebasing
中的这些分歧更改以及完全私有的分支的一些本地更改我。所以不应该受到伤害,对吧?是否有任何特殊情况,这种模式会导致问题?
修改
要考虑的一个问题是,如果我在功能分支上执行master
来清理提交历史记录,例如
interactive rebase
并且这个分支已经合并到master,然后两个分支对不同的提交引入相同的更改吧?这当然是不可取的。
答案 0 :(得分:1)
所以你有一个合并到t.detach()
的功能分支,
然后在master
和功能分支中添加了更多提交。
那就是:
master
在 A---B---C---D---E topic
/ \
D---E---F---G---M---X---Y master
上修改功能分支时,
这实际上会插入在master中添加的提交,
在功能分支中本地添加的提交前面。
正如你自己写的那样。
这应该工作正常。
你会得到:
master
这种模式不应造成任何伤害。 任何变基都有通常的风险, 您在功能分支中的提交可能与master中添加的更改冲突。 这与"模式"无关, 这只是任何改组和合并操作的常见风险。
我还要引用@VonC的附录:
不仅该模式不会造成任何伤害,而且有助于最大限度地减少
A---B---C D'---E' topic / \ / D---E---F---G---M---X---Y master
重播的提交次数,同时将最新的git rebase
次提交集成到master
环境中,帮助您在稍后将feature
合并到feature
之前在本地解决冲突。 (stackoverflow.com/a/804178/6309)。
答案 1 :(得分:0)
就像文件说的那样:
Rebase是一种很好的方式来同步"通过注意保存当前提交,在rebase上应用提交,然后应用已保存的提交。
这里的情景:
A---B---C topic
/
D---E---F---G master
从这一点来看,以下任一命令的结果:
git rebase master git rebase主题 将是:
A'--B'--C' topic
/
D---E---F---G master
不要忘记,像合并一样,rebase应该导致合并冲突,这是Git的生活。