(git): 如何从上游分支中获取特定的提交?

10

我有一个 git 仓库:

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,但我不知道如何操作。

2个回答

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

现在你只会在 dev 分支中看到来自提交记录 D 的更改。


-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接