在什么情况下需要使用git cherry-pick而不是git merge?

5

我知道在git中移动个人从一个分支到另一个分支有一些选项。 我已经尝试过git mergegit cherry-pick,但无法看出什么情况下更适合使用git cherry-pick

我的理解是:

git merge <hash>将指定的提交从一个分支移动到另一个分支,将其作为一个提交保留。

git cherry-pick <hash>在第二个分支中创建提交的副本,但它是独立的,具有自己的提交哈希。

对我来说,第一种选择似乎更可取,但在什么情况下会更喜欢使用cherry-pick

2个回答

7

假设你有一个从master分支派生出来的分支,其中包含许多提交。也许你在master上做了一个适当的更改,但你不想带入所有的更改(例如一个小错误修复或添加一个小功能)。使用git cherry-pick命令,你可以仅获取来自另一个分支的该提交并将其合并到master中。


如果你在合并时指定哈希值,它会仅合并那一个提交吗? - hvgotcodes
3
当你合并时,你会得到 <hash> 和所有祖先,因为它从你正在合并的分支分叉出来。分支名称实际上只是一个命名的哈希值。 - mipadi
我原本以为当你指定一个哈希值 (git merge <hash>) 时,你只会得到那一个提交。这是不正确的吗? - markdorison
@markdorison:是的。如果您指定一个哈希值,您将获得该哈希值的所有祖先。 - mipadi

0

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