【发布时间】:2020-09-08 18:26:06
【问题描述】:
我处于这种情况,我们有 master、fix-a 和 fix-b 分支。
| A fix-a wip (HEAD of fix-a)
|/
|
| B fix-b wip good enough (HEAD of fix-b)
|/
M (HEAD of master)
|
假设我正在处理fix-a,而其他人正在处理fix-b。 fix-a 和 fix-b 不相互依赖,完成后可以按任意顺序合并到 master。但是,修复 issue-b 后,使用 issue-a 会更方便。现在 issue-b 对我来说已经足够修复了,还没有完成,所以没有合并到 master 中。所以基本上我想将fix-b 合并到fix-a,但是当将fix-a 合并到master 时,不包括fix-b 的变化——考虑到fix-b 将继续分歧,我不希望半生不熟在我的分支中修复。
所以我将fix-b 合并到fix-a 并继续破解。
| E a fixed! (HEAD of fix-a)
| |
| D merge fix-b in to fix-a
| |\
| | A fix-a wip
| |/
|/| C fix-b still wip (HEAD of fix-b)
| |/
| B fix-b wip good enough
|/
M (HEAD of master)
|
现在我想将更改 A 和 E 合并到 master 中。所以我结帐E,执行git rebase -i 并删除B。然后合并到master。
问题是,有没有更优雅的方法来做到这一点?想象A 和B 是一长串提交。 git rebase -i 是一种乏味的工作。我想说,在合并提交D 关注父A。
【问题讨论】: