我有两个分支,主和上游。偶尔,上游被导入/合并到master中。
如何将这些重新绑定在一起?
用图表解释起来要容易得多:
我有:
A--B--C--D--E--F--G--H
\ |
| /
\ /
X--Y--Z
应该(我想要):
A--B--C--D--E--F--G--H
\ | /
| / ___/
\ / /
X--Y--Z
我知道有一种方法(使用管道命令)。
答案 0 :(得分:2)
知道了!
对于那些遇到同样问题的人来说,这就是我的所作所为。请参考此处的图表,而不是原始帖子(为了清楚起见,我添加了一些提交)。
首先,从日志中获取该提交的时间戳。如果我们稍后不使用这些时间戳,我们的新合并将具有比提交G..K更新的时间戳!因此,请git log --format=fuller
使用CommitDate和AuthorDate查看每个提交的日志。在示例场景中,我们要查找的时间戳来自提交E
。然后:
在:
A--B--C--D--E--F--G--H--I--J--K master
\ |
| /
\ /
X--Y--Z upstream
命令:
git branch temp
git reset --hard E
GIT_AUTHOR_DATE="..." GIT_COMMIT_DATE="..." git merge Z
git cherry-pick G..K
后:
A--B--C--D--E--F--G--H--I--J--K master
\ | /
| / ___/
\ / /
X--Y--Z upstream