diff和git diff创建的补丁/文件有什么不同?

diff和git diff创建的补丁/文件有什么不同?,git,diff,git-diff,git-patch,Git,Diff,Git Diff,Git Patch,我想知道diff和git diff创建的文件/补丁的格式有什么不同 我知道在diff中有3个(普通的,-c紧凑的和“统一的”-u的) 但是,可能存在一些差异,在某些情况下,您无法自由交换git diff和diff。因此: 这取决于您是否可以对同一个文件使用git diff和diff 格式之间有什么区别 如果无法交换命令(请参见1),如何将文件转换为其他格式,以便与其他命令一起使用 如果可以交换命令(请参见1.):是否建议这样做 这两个命令创建的文件是否有其他显著差异 这取决于您是否可以对同一个文

我想知道
diff
git diff
创建的文件/补丁的格式有什么不同
我知道在
diff
中有3个(普通的,
-c
紧凑的和“统一的”
-u
的)

但是,可能存在一些差异,在某些情况下,您无法自由交换
git diff
diff
。因此:

  • 这取决于您是否可以对同一个文件使用
    git diff
    diff
  • 格式之间有什么区别
  • 如果无法交换命令(请参见1),如何将文件转换为其他格式,以便与其他命令一起使用
  • 如果可以交换命令(请参见1.):是否建议这样做
  • 这两个命令创建的文件是否有其他显著差异
  • 这取决于您是否可以对同一个文件使用
    git diff
    diff
  • 简单地说,如果文件位于git repo工作树中,那么您就可以使用
    git diff
    来显示该文件的更改(与git repo引用的同一文件相对,如索引或blob对象)。
    这与“”不同,后者比较文件(这意味着您需要两个文件,而不仅仅是git repo中使用的git diff中的一个文件)

    正如所指出的那样:

    .
    因此,您可以在几乎任何可以使用
    diff
    的情况下使用
    git diff

    反之亦然


  • 格式之间有什么区别
  • git diff
    可以模拟任何diff格式(统一、原始等)。
    它还具有特定于git的格式(
    --summary
    --stat
    ,…)

    另见:

    • “”
    git diff
    将包含一个git头,带有“相似性索引”。
    每个差异块的大块显示为


  • 如果无法交换命令(请参见1),如何将文件转换为其他格式,以便与其他命令一起使用
  • 您可以将
    git diff
    转换为原始格式,或使用原始格式进行修补:
    ——使用原始格式进行修补
    反之亦然:


  • 如果可以交换命令(请参见1.):是否建议这样做
  • 如果您没有安装git,则会出现这种情况(请参阅)


  • 这两个命令创建的文件是否有其他显著差异

  • 否:应用由
    diff
    git diff
    生成的修补程序的结果应该相同。

    所有这些都记录在git参考文档中(请参阅)。大致上git diff会在某些情况下添加更多的标题。您可以在任何工作树之外使用
    git diff
    ,并向其传递两个文件。因此,您可以在几乎任何可以使用
    diff
    的情况下使用
    git diff
    。正如你在回答中正确地提到的那样,相反的说法是不正确的。@hvd-true。我在答案中加入了您的评论,并附上了链接和示例,以提高可视性。
     git diff --color-words --no-index file1 file2