从分支主机开始,要合并主题分支,只需说
git merge topic
但是,如果想要改变,则命令是
git rebase master topic
git checkout master
git merge topic
最后两行只是将主分支快进到主题分支,因此可以进行变化,例如,我喜欢以下模式:
git rebase master topic
git rebase topic master
当保留本地“主题”分支的状态时,它会变得更加复杂:
git checkout -b tmp topic
git rebase master
git rebase tmp master
git branch -d tmp
有一个简单的命令吗?什么工作像CLI上的git-merge一样简单,但实际上执行了一个rebase,而没有移动主题分支?
答案 0 :(得分:2)
没有一个完美的命令可以一次性完成这项工作,但是还有一个非常接近的命令。
假设topic
完全符合master
顶部而不会发生冲突,这可以从master
分支开始:
git cherry-pick master..topic
master..topic
是topic
但不是master
的一组更改,如果topic
完全master
,那么按顺序挑选它们实际上是一个变基}}
对于双命令完全保真的情况(或三个保存topic
),我不会像你那样做两个rebase
,我会做rebase
和update-ref
为清晰起见。
答案 1 :(得分:1)
绝对没有内置的功能。这是一个足够复杂的动作序列,它实现起来并不是一件容易的事情:你期望在rebase失败时发生什么?
在任何情况下,如果你不介意做一些古怪的事情,比如使用rebase来实现快进,那么你可能更愿意做git push . topic:master
,这至少会确保它是快进的。
您可以做的最好的事情是对其进行别名/编写,以便git merge-rebased master topic
表示git rebase master topic && git checkout master && git merge topic
或您喜欢的任何变体。