首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有通过rebasing合并主题分支的简单命令?

有没有通过rebasing合并主题分支的简单命令?
EN

Stack Overflow用户
提问于 2012-02-16 00:25:26
回答 2查看 55关注 0票数 2

从分支母版开始,合并主题分支一只说

代码语言:javascript
复制
git merge topic

但是,如果想要重新设置基址,命令是

代码语言:javascript
复制
git rebase master topic
git checkout master
git merge topic

最后两行只是将主分支快进到主题分支,因此可以进行变化,例如,我喜欢以下模式:

代码语言:javascript
复制
git rebase master topic
git rebase topic master

当本地“主题”分支的状态被保留时,它会变得更加复杂:

代码语言:javascript
复制
git checkout -b tmp topic
git rebase master
git rebase tmp master
git branch -d tmp

有没有简单的命令可以做到这一点?在CLI上像git-merge一样简单,但实际上执行rebase,而不移动主题分支的东西?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-16 01:07:51

没有一个完美的命令可以一次完成这个任务,但有一个非常接近的第二个命令。

假设topic可以干净利落地安装在master之上,而不会发生冲突,这将从master分支开始:

代码语言:javascript
复制
git cherry-pick master..topic

master..topictopic中的一组更改,而不是master中的更改,如果topic干净地基于master,那么按顺序挑选它们实际上是一种重新定位。

对于两个命令的完美保真度情况(或者三个命令来保留topic),我不会像你那样做两个rebase,为了清楚起见,我会做一个rebase和一个update-ref

票数 2
EN

Stack Overflow用户

发布于 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,或者你喜欢的任何变体。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9297149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档