我有这个(git repo):
A--B--C--D ->master
\--E ->dev
我想只将提交D
带到分支dev
(D
不依赖于C
),以便:
A--B--C--D ->master
\--E--D' ->dev
但合并后D'不应该被添加到主人身上:
A--B--C--D--E' ->master
\--E--D'/ ->dev
这是因为我想只带一个文件更新,而不必用dev
(代表另一个大合并)添加的新文件污染C
。
我猜我需要使用git rebase
,但我不知道如何。
答案 0 :(得分:12)
您想使用git cherry-pick
。我假设您的遥控器被命名为“origin”(但用“origin”替换远程仓库的真实名称)。我假设您有两个名为master
和dev
的本地分支。我假设提交D在origin/dev
上。您可以通过以下方式挑选D:
$ git fetch origin # Assuming the upstream remote's name is "origin"
$ git checkout dev # Check out your local "dev" branch
$ git cherry-pick $COMMIT_D # Replace "COMMIT_D" with the hash for commit D
现在,您只需在dev
中的提交D进行更改。
答案 1 :(得分:0)
使用工作链接
更新git cherry-pick