从分支母版开始,合并主题分支一只说
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,而不移动主题分支的东西?
发布于 2012-02-16 01:07:51
没有一个完美的命令可以一次完成这个任务,但有一个非常接近的第二个命令。
假设topic可以干净利落地安装在master之上,而不会发生冲突,这将从master分支开始:
git cherry-pick master..topicmaster..topic是topic中的一组更改,而不是master中的更改,如果topic干净地基于master,那么按顺序挑选它们实际上是一种重新定位。
对于两个命令的完美保真度情况(或者三个命令来保留topic),我不会像你那样做两个rebase,为了清楚起见,我会做一个rebase和一个update-ref。
发布于 2012-02-16 01:04:21
绝对没有内置的东西可以做到这一点。这是一个非常复杂的操作序列,它的实现并不是很简单:你期望发生什么,rebase失败?
在任何情况下,如果你不介意做一些古怪的事情,比如使用rebase来实现快进,那么你可能更喜欢做git push . topic:master,这至少可以确保它是快进的。
你能做的最好的就是给它起别名/脚本化,这样git merge-rebased master topic就意味着git rebase master topic && git checkout master && git merge topic,或者你喜欢的任何变体。
https://stackoverflow.com/questions/9297149
复制相似问题