什麼是裸 Git 倉庫?
介紹
裸倉庫與預設倉庫相同,但不能在其中提交程式碼。裸倉庫沒有工作區,因此無法跟蹤對專案的更改。所有專案檔案/子目錄都儲存在工作區中。所有專案檔案都儲存在裸倉庫內的特定資料夾中,基本上就是一個 .git 資料夾。
在本文中,我們將進一步探討裸倉庫。
什麼是 Git 倉庫
Git 倉庫包含一系列檔案和資料夾,用於跟蹤程式碼庫更改的歷史記錄。作為一名開發者,它對我非常有用,因為它維護了專案程式碼庫的單一檢視,備份了整個專案歷史記錄的副本,允許我快速檢索整個程式碼庫或單個檔案的舊版本,除錯程式碼,顯示誰進行了哪些特定更改等等。開發團隊發現它非常有用。
裸 Git 倉庫:它們是什麼
執行 `git init --bare` 會建立一個用於共享的裸倉庫。裸倉庫是一個團隊所有成員都可以從中拉取更改的地方,以便與團隊的其他成員共享,以便能夠協作更改(如果您與開發團隊合作,簡單的解決方案通常是 GitHub)。Git 的分散式特性可防止任何人直接編輯共享的集中式倉庫。作為替代方案,開發人員可以克隆共享的裸倉庫,在本地進行更改,然後在他們對自己的工作副本進行更改後,將更改推回共享的裸倉庫,以便其他人可以看到他們的更改。
不需要工作區,因為任何人都可以直接在共享的裸倉庫中編輯檔案。當用戶將程式碼推送到倉庫時,工作區只會導致衝突。裸倉庫中沒有工作區,這就是它們存在的原因。
為什麼我們需要裸 Git 倉庫
協作完成專案需要一箇中央倉庫,以便可以儲存所有更改並防止每個人計算機上不同版本之間的衝突。透過擁有一箇中央倉庫,任何新的貢獻者都可以將倉庫克隆到本地倉庫中,而無需安裝未儲存的更改或處理他人衝突的工作(簡而言之,沒有混亂)。中央倉庫旨在類似於參考倉庫。
最初,只有裸倉庫可以用作遠端倉庫,這需要使用遠端倉庫作為中央倉庫。最近,Git 已經改變了,允許中央倉庫不是裸倉庫,所以很多人不熟悉它。在裸倉庫上,只有推送和克隆操作是可能的。
為什麼只有裸倉庫被用作同步任務的中央倉庫
始終建議將中央倉庫建立為裸倉庫,因為將分支推送到非裸倉庫可能會導致覆蓋更改。當倉庫被標記為 `--bare` 時,它被視為儲存設施而不是開發環境。對於幾乎所有 Git 工作流程,這意味著中央倉庫將是裸倉庫,而開發人員的本地倉庫將不是裸倉庫。
建立遠端中央倉庫是 `git init --bare` 最常見的應用。為了建立你的中央倉庫,你首先需要透過 SSH 連線到包含它的伺服器。之後,你導航到想要儲存專案的位置。要建立中央儲存倉庫,請使用 `--bare` 標誌。開發人員的開發機器上將透過克隆 `my-project.git` 建立 `my-project.git` 的本地副本。
裸 Git 倉庫的優缺點
優點
可以使用分散式版本控制系統獲得實際經驗。
無需使用 Gitlab、Github 或任何其他第三方客戶端即可使用你自己的遠端 Git 倉庫。
你不需要在第三方客戶端上設定帳戶。
對於小型遠端團隊來說,這是一個方便的解決方案。
缺點
維護遠端伺服器會帶來額外的麻煩。
如果伺服器丟失,所有檔案都可能丟失。
我們將無法視覺化儲存在遠端倉庫中的檔案。
結論
在本文中,我們詳細探討了 Git 中的裸倉庫。我希望你已經理解了所有內容。