比如: linux 有 1.x 和 2.x 版本.(一个库里的两个分支)
有一个 bug1, 在 1.x 中修复了, 如果在 2.x 中合并此 bug.
我没有找到合适的方法.
大概如下面: 只合并 d,e,f.(注: c 状态会有一些文件是 b2 状态没有的.)
- [1.x]
- |
- a->b->c
- |
- d->e->f
- |
- [bug1]
- [2.x]
- |
- a2->b2
自己研究出来一个.
- git co bug1
- git co -b 1.x_bug1
如果直接变基他, 在 1.x 上变基完成后, 这个分支就没了. 和 1.x 合并了, 所以做出来一个临时的.
git co -b 2.x_bug1
第二个临时的, 为的保留原本的.
git rebase 1.x 1.x_bug1
变基成功后, 1.x_bug1 指向到 1.x 上.
git rebase 2.x 2.x_bug1
全部完成后, bug1,1.x,2.x 都在.
为何不在 2.x 上 git merge bug1? 因为 bug1 是在 1.x 上修复的, 此时合并, 会将截止 bug1 的所有 1.x 的文件都合并到 2.x 中, 而我们只需要 bug1 修改的部分.
不知道, 正常的情况, 是如何处理这个问题的.
不知道 rebase 有什么参数, 或者其他方法实现这个功能. 我对 git 不太熟悉, 也没搜索到.
来源: http://www.jianshu.com/p/c6ca1e7bf3fc