双方git am并git apply可以用来应用补丁.我没有看到差异.我现在看到了一个区别:git am自动提交而git apply只触及文件但不创建提交.这是唯一的区别吗?
geo*_*ock 121
输入和输出都不同:
git apply获取补丁(例如输出git diff)并将其应用于工作目录(或索引,如果--index或--cached使用).git am获取格式化为电子邮件消息(例如输出git format-patch)的提交邮箱,并将它们应用于当前分支.git amgit apply在幕后使用,但在(读取Maildir或mbox解析电子邮件)之后(创建提交)之前做更多工作.
CB *_*ley 17
git apply用于应用直接差异(例如来自git diff),而git am用于应用来自电子邮件的补丁和补丁序列,mbox或Maildir格式,并且是"对立" git format-patch.git am尝试从电子邮件消息中提取提交消息和作者详细信息,这就是它可以进行提交的原因.
随着git am您应用补丁,如果您使用,git status您将看不到任何本地更改.
git apply使您可以更改在源文件中,如果你是自己编写的代码,因此git status而git diff将输出在您已经应用,那么你就可以修复/添加更多的变化,并一起提交它们作为一个新的补丁的补丁所做的更改.