git am和git apply之间的区别是什么?
git am和git apply之间的区别是什么?,git,patch,Git,Patch,git-am和git-apply都可以用于应用补丁程序。我看不出有什么区别。我现在看到了一个不同:git am自动提交,而git apply只涉及文件,而不创建提交。这是唯一的区别吗?使用git am应用补丁程序,这样当运行git status时,您不会看到任何本地更改,但是git log将显示补丁程序已提交到源代码 但是使用git apply时,您在源文件中进行更改,就像您自己编写代码一样,因此git status和git diff将输出您应用的补丁中出现的更改。因此,使用git-apply您
git-am
和git-apply
都可以用于应用补丁程序。我看不出有什么区别。我现在看到了一个不同:git am
自动提交,而git apply
只涉及文件,而不创建提交。这是唯一的区别吗?使用git am
应用补丁程序,这样当运行git status
时,您不会看到任何本地更改,但是git log
将显示补丁程序已提交到源代码
但是使用
git apply
时,您在源文件中进行更改,就像您自己编写代码一样,因此git status
和git diff
将输出您应用的补丁中出现的更改。因此,使用git-apply
您可以修复/添加更多更改,并git-add
将它们作为一个新补丁一起添加。git-apply
用于应用直接差异(例如,来自git-diff
),而git-am
用于应用电子邮件中的补丁和补丁序列,mbox或Maildir格式,是git格式补丁的“反面”git am
尝试从电子邮件中提取提交消息和作者详细信息,这就是它可以进行提交的原因。输入和输出都不同:
- 获取修补程序(例如的输出)并将其应用于工作目录(或索引,如果使用了
或--index
)--cached
- 获取格式为电子邮件的提交邮箱(例如的输出),并将其应用于当前分支
,但在之前(阅读
Maildir
或mbox
并解析电子邮件)和之后(创建提交)做更多的工作.am
可以被认为是Apply-Mail
的缩写。注意:git-Apply
似乎也接受git-format-patch
输出。git-Apply
也适用于git-format-patch
的输出,但更改将不过时,需要提交(从而在应用它们的索引中创建一个不同的提交点)。使用git-am
您将把提交信息(连同作者等)带入应用到的索引中。git-apply
然后用于修补您的repo(坏),git-am
可以进行合法的功能更改并将其包含到您的repo中(首选方法)。