diff命令'diff -b'和'git diff'之间的区别

bro*_*oot 5 git diff patch git-diff git-apply

我一直都diff -b在制作补丁时会做补丁git repo

  1. 两者之间有什么区别,git diff / git format-patch内部是否也使用linux / unix diff命令?(我知道之间的区别git diff/git format-patch
  2. 此外,与的修补方式patch -p1有何不同git apply。我可以应用由diff命令(diff -b)生成的补丁并使用进行应用git diff吗?
  3. 与之一起使用git diff/apply时是一种好习惯git吗?我一直在使用diff/patch,从未遇到任何问题。

如果我对上述事情的知识不足,请指正。

tor*_*rek 5

为了:

  1. Git有自己的内置差异,但是如果选择正确,两者的输出也非常相似。使用内置的DIFF和git diff前端得到你一大堆的自动化,加上输出总有一些东西git apply还是git am会喜欢。简而言之,它更加方便

  2. 我已经做了这种事情(将git diff输出馈入patch,或将原始diff输出馈入git apply)。它可以工作,尽管有时我不得不在这里和那里进行编辑才能使其正常工作,这很痛苦。它更方便,只是得到一个git diff,如果我想git apply还是git am一个补丁。一般而言,最大的可观察到的区别是git apply默认情况下不会部分应用:您必须添加--reject以使其类似于补丁程序的默认行为。(此外,所有这些.orig文件...)

  3. 是的,因为方便。当进一步使用git format-patch和时git am,您可以大规模应用一系列补丁,维护包括作者信息等的提交消息,并自动完成所有提交。

  • 顺便说一句,我已经完成了 mix-n-match 的操作:不用 `git apply --reject`,而是使用 `patch` 来应用。有时,大功率电动螺丝刀似乎有点大材小用,我使用手动螺丝刀。:-) (2认同)