通过查看brackets-git(用于Brackets的git扩展)的源代码,我看到在调用git diff
时,^!
(插入符号)正被追加到提交哈希。见GitCli.js, line 754:在调用git diff时,提交hash后做了什么?(^!)?
function getDiffOfFileFromCommit(hash, file) {
return git(["diff", "--no-ext-diff", "--no-color", hash + "^!", "--", file]);
}
这相当于在命令行下,使用有问题的文件为例:
$ git diff --no-ext-diff --no-color 1f9ea6e^! -- src/git/GitCli.js
我知道^
要提到的提交的父。 ^!
做什么?
对于[git rev-parse](http://git-scm.com/docs/git-rev-parse)文档中提到的所有提交方式,都有很好的指导。在这种情况下,我相信:“r1 ^!包含提交r1但排除其所有父母。” – Charlie 2014-09-03 18:57:27
从测试中,输出似乎与调用差异并将其所有父项作为参数完全相同。我不知道在分析多个树时(从代码注释,它应该是一个错误)什么git做。也许它与父母的合并基础有一些魔力? – knittl 2014-09-03 19:59:32