为了将一个人从一个分支移动到另一个分支,我意识到git中有一些选项。我已尝试使用git merge
和git cherry-pick
,但未能确定何时git cherry-pick
更为可取。
我的理解如下:
git merge <hash>
将指定的提交从一个分支移动到另一个分支,将其保留为一个提交。
git cherry-pick <hash>
在第二个分支中创建提交的副本,但它与自己的提交哈希分开。
第一个选项似乎比我更好,但cherry-pick
首选的实例是什么?
答案 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
你当然需要哈希。