我注意到SourceTree使用此配置选项执行git命令:
git -c diff.mnemonicprefix=false
Run Code Online (Sandbox Code Playgroud)
这就是git docs关于这个选项的说法:
diff.mnemonicprefix
如果设置,git diff使用的前缀对与标准"a /"和"b /"不同,具体取决于所比较的内容.当此配置生效时,反向差异输出也会交换前缀的顺序:
git diff
比较(i)ndex和(w)ork树;
git diff HEAD
比较(c)ommit和(w)ork树;
git diff --cached
比较a(c)ommit和(i)ndex;
git diff HEAD:file1 file2
比较(o)对象和(w)ork树实体;
git diff --no-index a b
比较两个非git的东西(1)和(2).
我还是不明白这意味着什么.谁能解释一下?
Chr*_*ris 32
git diff
显示有关它正在比较的文件的一些元数据.通常你可能会看到这样的事情:
diff --git a/foo/bar.txt b/foo/bar.txt <--
index abcd123..1234abc 100644
--- a/foo/bar.txt <--
+++ b/foo/bar.txt <--
Run Code Online (Sandbox Code Playgroud)
注意如何使用a/
和b/
用箭头指示的三条线来区分文件.这是非助记符; 人物a
并b
没有真正的意义.
与diff.mnemonicprefix
启用,为你所援引的文件中描述的被选择这些字符.例如,如果您对本地副本进行了更改并与索引进行比较(例如,与git diff
),您会看到类似的内容
diff --git i/foo/bar.txt w/foo/bar.txt
index abcd123..1234abc 100644
--- i/foo/bar.txt
+++ w/foo/bar.txt
Run Code Online (Sandbox Code Playgroud)
代替.字符i
和w
分别用于指示索引和工作副本.
文档中列出的其他案例的工作方式类似.