Git - 本地協議



Git 本地協議是 Git 用於在位於同一檔案系統上的不同倉庫之間傳輸資料的方法之一。

此協議涉及透過本地檔案路徑而不是透過網路在同一主機上的不同目錄中查詢遠端倉庫。

工作原理?

如果您有共享掛載的檔案系統,則可以克隆、推送到和從基於本地檔案的倉庫中拉取。

使用倉庫的路徑作為 URL 來克隆倉庫或將其作為遠端倉庫新增到現有專案。

Git 使用本地協議直接透過檔案系統傳輸檔案和引用。

1. 例如,執行類似於以下命令以將本地倉庫克隆到另一個目錄

git clone /path/to/repository /path/to/destination

2. 從本地倉庫拉取:從本地倉庫拉取或獲取也使用本地協議。

git remote add origin /path/to/repository

3. 推送到本地倉庫:使用本地協議將檔案路徑指定為遠端倉庫來推送到本地倉庫。

git push /path/to/repository branch_name

當 Git URL 以file://開頭時,它會修改操作的處理方式。

  • 在沒有file://的情況下,Git 使用直接檔案複製或硬連結來最佳化操作。

  • 提供file://時,Git 使用效率較低的網路傳輸過程。

  • 當需要乾淨的倉庫副本,沒有任何不必要的引用或物件時(例如,從另一個版本控制系統遷移後),通常使用file://

  • 在大多數情況下,使用常規路徑(無file://)更快且足夠。

git clone file:///srv/git/project.git

使用以下命令將本地倉庫新增到現有 Git 專案。

git remote add local_proj /path/to/repository

新增後,可以像訪問網路遠端倉庫一樣,向新新增的遠端倉庫 (local_proj) 推送和拉取。

優勢

  • 基於檔案的倉庫利用現有的網路訪問和檔案許可權,使其易於設定。

  • Git 本地協議快速高效,因為沒有網路開銷。

  • 這是在同一系統上放置多個倉庫的理想設定。

  • 克隆更快並節省磁碟空間,因為 Git 可能會使用硬連結來避免複製物件檔案。

  • 使用此配置,可以快速輕鬆地從同事的工作倉庫中檢索工作,而無需將其推送到遠端伺服器然後再從中檢索。

侷限性

  • 與基於網路的訪問相比,可訪問性可能更復雜,因為倉庫位於同一臺機器上或可透過共享檔案系統訪問,例如網路掛載的驅動器。

  • 共享檔案系統的功能決定了訪問速度,這可能會導致效能下降。

  • 因為 NFS 倉庫可能比同一伺服器上可透過 SSH 訪問的倉庫慢,所以 Git 能夠有效地利用本地驅動器。

  • 基於檔案的倉庫也沒有針對意外損壞的內建保護。

  • 如果使用者無意中更改或刪除重要的 Git 檔案,則擁有遠端目錄的 shell 訪問許可權的使用者有損壞倉庫的風險。

  • 這並非最佳選擇,因為每個倉庫例項都位於同一系統上。

  • 由於集中化,增加了資料災難性丟失的可能性。

Git 本地協議無法保護倉庫免受損壞,因為每個使用者都擁有該目錄的完整 shell 訪問許可權,並且任何人都可以在任何時間點更改它。
廣告
© . All rights reserved.