这两个git am
和git apply
可以用来应用补丁。 我看不出区别。 我现在看到了区别: git am
自动提交,而git apply
仅接触文件,但不创建一个承诺。 这是唯一的区别?
Answer 1:
输入和输出是不同的:
-
git apply
需要补丁(例如输出git diff
),并且它适用于工作目录(或索引,如果--index
或--cached
被使用)。 -
git am
需要格式化为电子邮件提交的邮箱(如输出git format-patch
),并将其应用到当前分支。
git am
使用git apply
在幕后 ,但(阅读前做更多的工作Maildir
或mbox
,并解析电子邮件)和(创建提交)之后。
Answer 2:
git apply
是用于将直diff文件(例如,从git diff
),而git am
是用于从电子邮件应用补丁和补丁的序列,这可MBOX或Maildir的格式,它是的“相反” git format-patch
。 git am
尝试提取提交信息和作者信息从电子邮件这就是为什么它可以使提交。
Answer 3:
随着git am
应用了修补程序,所以如果你使用git status
,你将不会看到任何地方的变化。
git apply
使您可以修改的源文件,如果你正在写自己的代码,因此git status
和git diff
将输出在补丁所做的更改您已经应用,那么你就可以修复/添加更多的变化,并提交他们一起为一个新的补丁。
文章来源: What is the difference between git am and git apply?