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

问题描述 投票:0回答:2

我有这个(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 branch commit rebase
2个回答
14
投票

您想使用

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
投票

使用命令

git cherry-pick

© www.soinside.com 2019 - 2024. All rights reserved.