簡體   English   中英

GIT存儲庫的工作目錄是什么?

[英]What is the Working Directory of a GIT repository?

根據我迄今為止閱讀GIT的經驗,我發現工作目錄似乎有點過載。 有時人們指的是檢查分支的硬盤驅動器上目錄,例如在克隆存儲庫時,分支被檢出到repo的新克隆的目錄中。

但有時人們只是指一個抽象的位置,其中包含未跟蹤的文件修改過的文件,即輸入git status時的紅色文本

我希望有人可以讓我知道工作目錄的官方定義。 即使是在線的Pro Git書籍也確實有點模糊不清。

注意:我每天都使用它,我只是想知道它是什么。

干杯

git commit-tree樹表示工作目錄的特定目錄狀態

因此,盡管工作目錄表示其中一個回購協議已簽出, 工作樹表示它的狀態
git status顯示“ 工作樹 ”,表示工作目錄狀態

工作目錄引用“where”,工作樹引用“what” (它包含的內容,跟蹤或未跟蹤的文件)

請注意,git 2.5(2015年第2季度)將允許給定本地倉庫的多個工作樹
這意味着您將使用多個工作目錄(使用git worktree add <path> [<branch>] ),並且每個工作目錄可以包含不同的工作樹:例如,您可以檢查每個路徑的不同分支,這意味着每個目錄包含同一個倉庫的不同狀態 :多個工作樹。

也許這有幫助。

使用git存儲庫時,本地計算機上基本上有三件事:

1)存儲庫本身。 包含項目的整個更改歷史記錄。 提交,樹木,斑點。 它存儲在.git目錄中。

2)你的工作副本。 它是在您從存儲庫“簽出”代碼(通常是分支)時創建的。 它開始包含您從存儲庫中檢出的所有文件,但您可以使用它們。 它們存儲在.git目錄之外的常規文件中。

3)稱為“索引”的臨時區域。 當您提交存儲庫時,首先將您的更改“添加”到索引中。 這基本上會拍攝您要提交的文件的快照。 然后,您可以自動提交所有這些更改。 或者回顧一下。 或者添加更多。 索引也存儲在.git目錄中。


未跟蹤的文件:這些文件只是工作副本中不屬於存儲庫的文件。

已修改的文件:這些文件在工作副本中具有與存儲庫中不同的內容。 它們可以已經“暫存”(即添加到索引中)或不是。

運行git statusgit diff之類的工具時,工具會查看工作副本中文件的內容,並將它們與存儲庫(和索引)進行比較。 文件狀態不是“存儲”在任何地方的東西,它是在運行中計算的。

放置.git目錄的目錄以及該目錄.git所有(未排除)目錄。

暫無
暫無

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

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