为"a/")和"目标"文件(默认输出前缀为"b/")。我的问题是,"源"是指索引(暂存区)中的文件,"目标"是指工作目录中的文件,还是相反?
答案是否定的,也是肯定的。1
git diff
可以将事物与您的暂存区域进行比较,但它并不总是这样做。让我们考虑这些常见情况:
-
git diff
,没有额外的参数。 这意味着"将与索引关联的树与当前工作目录中的树进行比较"。 在这种情况下,"源"是索引。 -
git diff HEAD
,没有额外的参数。 这意味着"将HEAD
中的树与工作目录中的树进行比较"。 在这种情况下,根本不使用索引。 如果命名特定修订或分支,也是如此。 -
git diff --cached
,没有额外的参数。 这意味着"将HEAD
中的树与索引中的树进行比较"。 在本例中,"目标"是索引。 -
git diff --cached <rev>
:这与#3相同,但使用指定的修订版作为源。 -
git diff <rev1> <rev2>
:这将比较两个指定修订版的树,忽略索引和工作树。
暂存区域是源或目标,有时根本不使用。
据说:不要去找精灵寻求答案,因为他们会说不和是。
关系。源是索引,目标是工作。我所要做的就是查看工作文件。哎呀!全脑屁。