我讀的Git v2.9.1的release notes和變化一曰:常說「工作目錄」時,它的意思是「工作樹」工作樹VS工作目錄
「混帳地位」。
兩者有什麼區別? git status
何時意思是「工作樹」?
我讀的Git v2.9.1的release notes和變化一曰:常說「工作目錄」時,它的意思是「工作樹」工作樹VS工作目錄
「混帳地位」。
兩者有什麼區別? git status
何時意思是「工作樹」?
這樣做是爲了提高一致性和避免模糊性。正如在commit that changed this behavior中所解釋的:
工作目錄很容易與當前目錄混淆。
所以這個改動是爲了在工作樹之間更好的歧義,這意味着當前的倉庫已簽出的位置,以及你在哪裏運行git status
命令,至極的當前工作目錄可能在你的工作樹下面(或者不是,如果你設置了GIT_WORK_TREE
環境變量)。
含義有微妙的差異。
一個目錄是一個奇異的東西 - 一個文件夾,文件的集合 - 而工作樹意味着像被統稱文件和目錄的結構樹。
工作樹表示包含.git文件夾的目錄,包括所有子目錄和文件。
要更全面地理解這一點,您必須瞭解誰創建了Git:Linus Torvalds。在Git的一切都密切相關,Linux的命名規則和思維過程,其中包括Git是如何「認爲」有關的文件或文件系統:
從3.1.3. More file system layout
爲方便起見,Linux文件系統通常被認爲是在樹形結構。在標準的Linux系統上,您會發現佈局通常遵循下面介紹的方案。
因此它被稱爲「工作樹」,因爲Linux的籽粒/文件系統開發商建的Git,而在Linux文件系統被認爲是「樹」。
當前目錄
是當前文件夾,命令行LS名單在當前目錄
工作樹
的項目是當前目錄以及所有的目錄路徑在它中,如果是我,我會將它重命名爲'工作目錄樹',所以術語'樹'更適合於di在你的心目中的眼睛,少教區長結構,以一個Git樹結構
工作目錄
是含糊用來指代這兩種情況下,不要使用這個詞。它迷惑了每個人。
它現在一直都只是說「工作樹」嗎?這也會產生誤導。如果你運行'git status',你實際得到的是工作目錄的狀態。如果你運行'git status somesubdir',那麼結果既不是關於當前的工作目錄,也不是關於整個工作樹... –
@ WumpusQ.Wumbley是的,這是正確的。如果你提供'git-status'的pathspecs,並且它們是未修改的,那麼它確實說'沒有提交,乾淨的工作樹',即使工作樹的其他部分不是乾淨的。我同意這不是最佳的,但它並沒有比以前更糟。 –