是否可以使用Git rebase操作将一个分支及其所有父分支合并?(我认为“父分支”是这里要使用的正确表述。根据您的观点,您也可能称它们为依赖子分支。然而,遵循提交的父指针将带您到这些分支,所以在我看来将它们称为“父分支”是公平的)。
我经常使用分支作为快速/可变的标签/检查点来标记某些提交记录。所有父分支/父引用都完全包含在将要重新基于的分支中;没有仅存在于父分支中的提交记录。
* master
*
* featureA-finished
*
* origin/master
现在我想要将master
分支rebase -i
到origin/master
上,以改变/重新命名提交记录featureA-finished^
执行git rebase -i --onto origin/master origin/master master
后,我希望历史记录基本上如下:
* master
*
* featureA-finished
* (changed/reworded)
* origin/master
但是我得到的是:
* master
*
* (same changeset as featureA-finished)
* (changed/reworded)
| * featureA-finished
|.* (original commit i wanted to edit)
* origin/master
有没有绕过这个问题的方法,或者说我只能在新的变基提交上重新创建所有父分支-更具体地说是分支标签吗?
这个问题与变基包括其所有子级的分支相关,但仍然非常不同。
git notes
来标记你的提交,而不是使用分支 - 在变基过程中,这些标记会自动复制。我相信这是一个新功能,所以你需要最新的版本。http://www.kernel.org/pub/software/scm/git/docs/git-notes.html - Cascabel