我有这个(git repo):
A--B--C--D ->master \--E ->dev
我想只提交D
分支dev
(D
不依赖C
),所以:
A--B--C--D ->master \--E--D' ->dev
但合并后D'不应该添加到master:
A--B--C--D--E' ->master \--E--D'/ ->dev
这是因为我想只带来一个文件更新而不必污染dev
新文件C
(代表另一个大合并)添加.
我猜我需要使用git rebase
,但我无法猜测.
你想用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
现在,您只需要提交D中的更改dev
.