12

我遇到了git cherry-pick X会产生一些冲突的情况,但也创建了额外的插入(当使用 验证时git diff)。

然后我重新运行git show X > my.patch,然后patch -p1 < my.patch在我的树上做了。我得到了更好的结果,一些冲突,但更清晰的结果。

git 对樱桃挑选有什么特别之处?我使用 git 1.7.0.4。

编辑: 通过更清晰的结果,我的意思是生成的树与更多的结果匹配git show X,而git cherry-pick包含更多的代码。

4

2 回答 2

9

当您选择提交时,它使用提交的所有元数据提交结果,而不仅仅是它所代表的差异 - 您将获得原始提交消息和作者。您的补丁管道将为您提供所需的工作树内容,但是您必须自己提交它,希望能够git commit -c <original-commit>像cherry-pick那样复制元数据。Cherry-pick 还有一些可能有用的附加选项,并且可以接受多个提交(可能指定为 rev-list 范围)。patch显然不支持任何一个。

我不确定您是否断言结果“更干净”。您是否建议 git 以不同的方式应用差异patch

于 2011-03-01T16:03:25.793 回答
1

这可能会有所帮助:

http://technosophos.com/2009/12/04/git-cherry-picking-move-small-code-patches-across-branches.html

它可能部分偏离主题,但正如您所看到的,cherry Pick 似乎以某种方式跟踪代码中的代码块,比我猜的 patch 所做的要先进得多,这可能只是按顺序并并排解析两个代码库侧,并标记不同的线。

于 2013-10-28T17:37:04.887 回答