当我从Gerrit那里调出Patch时,问题来了:git apply和git fetch有什么区别?
cp patch /the/path/save git apply patch
和
git fetch ssh://someone@gerrit.(SOME INFOMATION) && git cherry-pick FETCH_HEAD
它们是一样的吗?还是先做a然后做Ba,B不能同时做,看起来他们做的是一样的事情,但我还是不明白他们之间有什么区别。
h22fl7wq1#
即使输入了相同的提交内容,结果也会不同:
git cherry-pick
git apply
它不会创建提交,如果您提交了结果更改,原始提交信息不会在该提交中。(除非您自己手动添加)然而,也有git am -k,你可以用它来导入一个由git format-patch -k创建的补丁,然后你应该得到一个commit,它是一个commit的副本,类似于cherry-picking。https://git-scm.com/docs/git-amhttps://git-scm.com/docs/git-format-patch显示器
git am -k
git format-patch -k
1条答案
按热度按时间h22fl7wq1#
即使输入了相同的提交内容,结果也会不同:
git cherry-pick
将创建一个提交,它是指定提交的副本,并保留原始提交信息(作者,作者日期,提交信息)git apply
将读取一个diff/patch文件并将其应用到当前工作目录。它不会创建提交,如果您提交了结果更改,原始提交信息不会在该提交中。
(除非您自己手动添加)
然而,也有
git am -k
,你可以用它来导入一个由git format-patch -k
创建的补丁,然后你应该得到一个commit,它是一个commit的副本,类似于cherry-picking。https://git-scm.com/docs/git-amhttps://git-scm.com/docs/git-format-patch显示器