查看brackets-git的源代码(Brackets的git扩展名),我看到^!
(插入符号)在调用{{1}时附加到提交哈希}}。见GitCli.js, line 754:
git diff
这在命令行中转换为以下内容,使用相关文件作为示例:
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
会引用提交的父级。 ^
做了什么?
答案 0 :(得分:6)
commit^!
是一个范围说明符,表示:此提交,但不包含其父项。
它等同于指定:commit ^parent1 ^parent2 ^parentN
。
对于diff这没有意义(你只能比较两棵树)
从测试开始,命令似乎显示父项的合并基础与最后一个父项之间的差异。我认为git(mis)解释类似于范围A...B
的参数,这些参数将显示merge-base A B
和B
之间的差异(git diff parent1...parent2
将产生相同的差异)。不知道章鱼合并会发生什么。
我可能错了,这些只是我从使用存储库进行测试并查看git代码(builtin/diff.c
)的假设。