Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么'git diff tree<;树的颜色>;`应用于第一次提交时不打印结果?_Git_Tree_Git Diff Tree - Fatal编程技术网

为什么'git diff tree<;树的颜色>;`应用于第一次提交时不打印结果?

为什么'git diff tree<;树的颜色>;`应用于第一次提交时不打印结果?,git,tree,git-diff-tree,Git,Tree,Git Diff Tree,我通常将git diff tree与以下选项一起使用: --无提交id--名称状态-r或--无提交id--仅名称-r以列出特定提交中添加和更改的文件 我今天刚刚注意到,这个命令在应用于第一次提交时不会打印结果 那么为什么,以及如何克服它呢?原因很可能是因为: 当给定两棵树时,它会比较第一棵树和第二棵树。当给出单个提交时,它会将提交与其父级进行比较 存储库中的第一次提交没有父级 但是,您可以为该提交指定: --根 当指定--root时,初始提交将显示为一个大型创建事件。这相当于与空树的差异 请注意

我通常将
git diff tree
与以下选项一起使用:
--无提交id--名称状态-r
--无提交id--仅名称-r
以列出特定提交中添加和更改的文件

我今天刚刚注意到,这个命令在应用于第一次提交时不会打印结果


那么为什么,以及如何克服它呢?

原因很可能是因为:

当给定两棵树时,它会比较第一棵树和第二棵树。当给出单个提交时,它会将提交与其父级进行比较

存储库中的第一次提交没有父级

但是,您可以为该提交指定:

--根
当指定--root时,初始提交将显示为一个大型创建事件。这相当于与空树的差异

请注意,如果您正在构建某种输出这些内容的脚本或应用程序,则必须检测到它是第一次提交,因为在其他地方添加
--root
将不是您想要的

因此,尽管这不会产生任何输出:

git diff-tree -r HASH-OF-FIRST-COMMIT
这应将第一次提交与空树进行比较:

git diff-tree -r --root HASH-OF-FIRST-COMMIT