bare Git 倉庫是什麼?
背景
今天,坐我旁邊的同事問我一些關於伺服器上命令的問題。其中有一個用了特殊參數的 git init
的命令,我也不認識,遂去 Google…
bare Git 倉庫
定義
A bare Git repository is typically used as a Remote Repository that is sharing a repository among several different people.
什麼是 bare Git 倉庫呢?簡單來說,就是在 Git 伺服器上的那個遠程 Git 倉庫,客戶端可以對其進行 push、pull 等操作。
創建一個 bare Git 倉庫
git init --bare
以上命令會創建一個 bare git 倉庫。
bare git 倉庫 vs 普通 git 倉庫
bare git 倉庫與使用 git init
命令創建的普通 git 倉庫唯一區別就是:bare git 倉庫沒有工作目錄/工作樹,僅僅是包含著了裸倉庫數據。
下面我們新建兩個文件夾 bare-git-repo
和 normal-git-repo
,分別用 git init --bare
和 git init
去初始化看下效果:
可以發現,git status
命令在 bare git 倉庫中根本無法使用。而且 bare git 倉庫是沒有 .git/
文件夾的,所有配置文件是直接就存在文件夾的根路徑下面的。
克隆時創建 bare git 倉庫
與 git init --bare
命令類似,我們也可以在使用 git clone
時通過添加 --bare
參數來創建一個 bare git 倉庫而不是普通的 git 倉庫。👇下面是一個使用 git clone --bare
命令通過克隆 gitignore 倉庫在本地創建 git bare 倉庫的實例。
bare git 倉庫的命名約定
從上面的截圖中,我們不難發現,這個自動創建的倉庫其文件夾名稱為 gitignore.git
,嗯這也是 bare git 倉庫的標準命名方式。
結論:建議使用 xxxxxx.git
名字來命名 bare git 倉庫的文件夾