(git):如何从上游分支带来特定的提交?

Ste*_*ius 10 git branch commit rebase

我有这个(git repo):

A--B--C--D ->master
   \--E    ->dev
Run Code Online (Sandbox Code Playgroud)

我想只提交D分支dev(D不依赖C),所以:

A--B--C--D  ->master
   \--E--D' ->dev
Run Code Online (Sandbox Code Playgroud)

但合并后D'不应该添加到master:

A--B--C--D--E' ->master
   \--E--D'/   ->dev
Run Code Online (Sandbox Code Playgroud)

这是因为我想只带来一个文件更新而不必污染dev新文件C(代表另一个大合并)添加.
我猜我需要使用git rebase,但我无法猜测.

mip*_*adi 12

你想用git cherry-pick.我假设你的遥控器被命名为"origin"(但是用远程仓库的真实名称代替"origin").我假设你有两个本地分支也命名masterdev.我假设提交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
Run Code Online (Sandbox Code Playgroud)

现在,您只需要提交D中的更改dev.


Arn*_*kas -1

使用gitcherry-pick 更新工作链接