如果我在遥控器上开始使用如下结构:
A-B-C-D-F-G master
\
E-H-I branch
我克隆分支并进行更改'J'(& commit并推送到远程分支)如何将'J'合并到master而不降低'H'和'I'?可以通过推动更改'J'来完成,还是需要切换到本地repo跟踪主控并合并本地'J'更改并将其推送到主控?
A-B-C-D-F-G-J master
\
E-H-I-J branch
答案 0 :(得分:2)
创造一个反映现实的历史,从而节省下游潜在的麻烦,
git checkout -b Jbranch B
git cherry-pick J
git checkout -B branch I
git merge Jbranch
git checkout -B master G
git merge Jbranch
git branch -d Jbranch
产
A..B..C..D..F..G..J'' master
| /
|\........J'.+
| \
\....E..H..I..J branch
旧的和新的“分支”提示中的'J'提交树将是相同的,只是这次有明确的历史记录。
答案 1 :(得分:0)
您可以cherry-pick更改J. Cherry-picking仅将特定提交复制到分支。
$ git checkout master
$ git cherry-pick J
请注意,提交J现在将被复制(它将存在于每个分支上)。