簡體   English   中英

為什么`git diff-tree<tree-ish> ` 應用於第一次提交時不打印結果?</tree-ish>

[英]Why does `git diff-tree <tree-ish>` not print a result when applied to the very first commit?

我通常使用git diff-tree <tree-ish>和這些選項: --no-commit-id --name-status -r--no-commit-id --name-only -r列出添加和在特定提交中更改的文件。

我今天剛剛注意到,此命令在應用於第一次提交時不會打印結果..

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

原因可能是因為文檔指出:

當給出兩棵樹時,它將第一棵樹與第二棵樹進行比較。 當給出單個提交時,它將提交與其父級進行比較。

存儲庫中的第一個提交沒有父級。

但是,您可以為該提交指定--root

- 根
當指定 --root 時,初始提交將顯示為一個大的創建事件。 這相當於針對 NULL 樹的差異。

請注意,如果您正在構建輸出這些內容的某種腳本或應用程序,您將必須檢測它是第一次提交,因為在其他地方添加--root將不是您想要的。

因此,雖然這不會產生 output:

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

這應該將第一次提交與空樹進行比較:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM