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

时间:2011-02-09 16:01:34

标签: git

为了将一个人从一个分支移动到另一个分支,我意识到git中有一些选项。我已尝试使用git mergegit cherry-pick,但未能确定何时git cherry-pick更为可取。

我的理解如下:

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

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

第一个选项似乎比我更好,但cherry-pick首选的实例是什么?

2 个答案:

答案 0 :(得分:7)

假设你有一个来自master的分支,它有一堆提交。也许您在master上进行了适当的更改,但您不想引入所有更改(例如,小错误修复,或者添加一个小错误)特征)。使用git cherry-pick,您可以从其他分支获取仅提交并将其带入master

答案 1 :(得分:0)

另一个用例是当你丢失提交并希望将其恢复时。 http://www.programblings.com/2008/06/07/the-illustrated-guide-to-recovering-lost-commits-with-git/

  

mathieu @ ml recovery(master)$ git cherry-pick   93b0c51cfea8c731aa385109b8e99d19b38a55be完成了一个樱桃挑选。   创建提交f443703:现在很酷的1个文件已更改,1   插入(+),0删除( - )创建模式100644 cool_file

你当然需要哈希。