3

如果我从遥控器上的如下结构开始:

A-B-C-D-F-G  master
   \
    E-H-I  branch

我克隆分支并进行更改'J'(&提交并推送到远程分支)我怎样才能将'J'合并到主控而不降低'H'和'I'?是否可以仅通过推送更改“J”来完成,或者我是否需要切换到本地回购跟踪主机并合并本地“J”更改并将其推送到主机?

A-B-C-D-F-G-J  master
   \       
    E-H-I-J  branch
4

2 回答 2

3

创造一个反映现实的历史,从而为自己避免下游的潜在麻烦,

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”提交树将是相同的,只是这次具有明确的历史记录。

于 2013-04-24T18:23:22.090 回答
1

您可以选择更改 J。Cherry-picking 仅将特定提交复制到分支。

$ git checkout master
$ git cherry-pick J

请注意,提交 J 现在将被复制(它将存在于每个分支上)。

于 2013-04-24T17:36:56.857 回答