Git - 在伺服器上安裝 Git



在伺服器上安裝 Git 的過程通常涉及幾個步驟,具體取決於您的作業系統(例如 Linux、macOS 或 Windows)。

為了設定 Git 伺服器,必須建立一個新的 **裸倉庫**,它沒有工作目錄。

  • 要實現此目的,請使用 **--bare** 選項克隆現有的倉庫。

  • 通常,裸倉庫以後綴 **.git** 結尾。

  • 使用以下命令建立一個名為 **new_project.git** 的基本倉庫。

git clone --bare new_project new_project.git

使用此命令克隆 **new_project** 倉庫,建立一個名為 **new_project.git** 的新裸倉庫。

一旦使用 **git clone --bare** 建立了裸倉庫,Git 目錄資料就會儲存在 **new_project.git** 中。

此過程等同於使用以下方法手動將 **.git** 目錄從 **new_project** 移動到 **new_project.git**

cp -Rf new_project/.git new_project.git

將 Git 倉庫中的資料與工作目錄分離到 **new_project.git** 中仍然是主要目標。

此配置對於伺服器倉庫很常見,在伺服器倉庫中不需要專案檔案,只需要 Git 操作。

將裸倉庫放在伺服器上

建立裸倉庫 **new_project.git** 後,設定伺服器並配置協議非常簡單。

如果您希望將 Git 倉庫儲存在 **/srv/git** 下,並且可以透過 SSH 訪問 **example-server.com**,則可以使用 SCP 傳輸基本倉庫

scp -r new_project.git user@example-server.com:/srv/git

**new_project.git** 裸倉庫遞迴地(**-r**)複製到 SSH 可訪問伺服器 **user@example-server.com** 上的 **/srv/git** 目錄。

將我們的倉庫儲存在伺服器上的 **/srv/git** 中後,具有 SSH 讀取訪問許可權的使用者可以使用以下命令克隆它

git clone user@example-server.com:/srv/git/new_project.git

如果使用者對伺服器上的 **/srv/git/new_project.git** 目錄具有寫許可權並且具有 SSH 訪問許可權,他們也將自動擁有推送許可權。

當您使用 **--shared** 選項初始化 Git 倉庫時,Git 會自動為該組分配寫許可權。

此操作不會影響現有的提交、引用和其他倉庫資料。

ssh user@example-server.com
cd /srv/git/new_project.git
git init --bare --shared

透過在具有 SSH 訪問許可權的伺服器上建立基本倉庫,可以輕鬆設定用於協作的 Git 倉庫。

  • 需要支援 SSH 的伺服器帳戶,以及協作者對倉庫的讀寫訪問許可權。

  • 這種方法適用於小型私有專案,參與者可以在同一個專案上進行協作。

  • 高階設定(稍後將介紹)包括控制使用者帳戶、授予公共讀取訪問許可權以及配置 Web 使用者介面以進行更徹底的專案管理。

小型設定

對於剛接觸 Git 或小型設定的團隊來說,設定 Git 伺服器非常簡單。

在設定 Git 伺服器時,管理使用者許可權可能會更困難,尤其是在對多個倉庫進行只讀和讀寫訪問時。

使用 SSH 訪問配置 Git 倉庫

  • 如果所有開發人員都已具有對伺服器的 SSH 訪問許可權,則可以輕鬆地在其中設定初始倉庫,而無需進一步設定。

  • 對於更復雜的訪問控制,請使用伺服器作業系統上的檔案系統許可權。

  • 如果倉庫位於沒有為每個團隊成員建立使用者帳戶的伺服器上,則需要配置 SSH 訪問許可權。

可用的選項是

  • 為每個團隊成員設定單獨的帳戶,這很簡單,但可能需要一些時間。

  • 建立一個名為 **git** 的單個使用者帳戶,並將需要寫訪問許可權的使用者的 SSH 公鑰新增到其 `authorized_keys` 檔案中。

  • 透過使用來自現有集中式源(如 LDAP)的 SSH 伺服器身份驗證,確保任何具有 shell 訪問許可權的已認證使用者都可以使用 SSH。

**注意:**要了解配置 SSH 金鑰的步驟,請點選 此處

總結

以下步驟總結了在伺服器上安裝 Git 的過程

  • 安裝 Git - 使用包管理器安裝 Git。

  • 配置 Git - 設定全域性 Git 配置,例如使用者名稱和電子郵件。

  • 設定 Git 倉庫 - 建立裸倉庫作為遠端倉庫。

  • 設定訪問控制 - 配置 SSH 金鑰、許可權或基於 Web 的 Git 管理工具,以便使用者可以從伺服器拉取/推送程式碼。

廣告