Git - GitLab



GitLab 是一個開源的 Git 伺服器。與 GitWeb 不同,它是一個更復雜的解決方案,需要用於處理和管理 Git 倉庫。

  • 在所有 Git 伺服器中,GitLab 是一款備受青睞的解決方案,它擁有豐富的功能,超越了 GitWeb 的功能。

  • GitLab 提供了一套完整的工具來管理 Git 倉庫,儘管它比 GitWeb 更復雜,安裝和管理也更復雜。

安裝

由於 GitLab 是一個依賴於資料庫的線上應用程式,因此它的安裝比某些其他 Git 伺服器更復雜。

但是,此過程有大量的文件和支援。

GitLab 建議使用官方的 Omnibus GitLab 包,因為它透過將所有必需的部分和依賴項組合到一個包中,從而簡化了設定。

GitLab 的其他安裝選項包括

  • GitLab Helm chart:專為在 Kubernetes 上部署而設計。

  • Dockerized GitLab 包:適用於 Docker 容器。

  • 從原始檔:允許從 GitLab 的原始碼進行自定義安裝。

  • 雲提供商:可在 AWS、Google Cloud Platform、Azure、OpenShift 和 DigitalOcean 等平臺上使用。

管理

GitLab 使用其線上介面進行管理。

  • 首先啟動 Web 瀏覽器並輸入我們的 GitLab 伺服器的 IP 地址或主機名。

  • 以 root 使用者身份登入。如果我們使用的是 Omnibus GitLab 包,則初始密碼將自動生成,並在 /etc/gitlab/initial_root_password 中保留至少 24 小時。

  • 登入後,單擊介面右上角的 管理區域圖示以檢視管理選項。

使用者

GitLab 中的每個使用者都需要一個帳戶,其中包含登入憑據和個人資料。

使用者的帳戶包含一個 名稱空間,其中包含使用者的所有專案。

  • 例如,Alice 名為 website 的專案的 URL 將為 http://yourserver/alice/website

  • 同樣,http://yourserver/bob/api-docs 將是 Bob 的專案 api-docs 的 URL。

  • 透過使用名稱空間幫助按使用者組織專案,可以更輕鬆地管理和查詢專案。

有兩種方法可以從 GitLab 中刪除使用者帳戶

  • 阻止使用者:這會阻止使用者訪問 GitLab,但會保留其所有資料。

    他們的電子郵件關聯的專案和提交仍然可用,並且他們的個人資料資料被安全地儲存。

  • 銷燬使用者:這會永久地從磁碟和資料庫中刪除使用者。

    這是一個更嚴重且永久的步驟,因為他們擁有的任何專案、資料和組都將被刪除。由於此方法是永久性的,因此很少需要使用。

簡單來說,GitLab 組是相關專案的集合,用於控制使用者訪問。

類似於使用者名稱空間,每個組都有自己的名稱空間。

  • 例如,如果組 training 有一個名為 materials 的專案,則 URL 將為 http://server/training/materials

  • 使用者在每個組中被授予不同的許可權級別,這些許可權級別決定了他們對組的設定和專案的訪問許可權和控制權限。

  • 訪客(檢視問題並參與聊天)到 所有者(對組、其成員和其專案擁有完全控制權),有多個可用許可權級別。

  • GitLab 在管理員面板上提供了有關這些許可權的完整列表的說明。

專案

通常,GitLab 專案表示單個 Git 倉庫。

每個專案都與一個名稱空間關聯,該名稱空間可以是個人或組。

  • 擁有專案的使用者可以控制誰可以訪問它。

  • 如果專案屬於組,則訪問許可權由組中的使用者級別許可權控制。

此外,專案的可見性設定確定誰可以訪問其頁面和倉庫

  • 私有:只有獲得專案所有者明確許可的人員才能檢視或與專案互動。

  • 內部:對任何具有有效登入名的 GitLab 使用者開放。

  • 公開:每個人都可以訪問,即使他們未登入。

此可見性設定會影響專案的線上介面和倉庫訪問。

鉤子

GitLab 允許系統和專案鉤子,這些鉤子使伺服器能夠在響應預定義事件時傳送包含 JSON 資料的 HTTP POST 請求。

透過使用此功能,GitLab 可以與其他開發工具整合,包括部署系統、聊天程式和持續整合 (CI) 伺服器。

  • 透過使用鉤子,可以簡化和自動化開發週期的一部分,這些鉤子允許基於倉庫活動進行自動互動和通知。

  • 我們可以透過配置這些鉤子來提高 GitLab 環境的效能和連線性。

基本用法

為了使用 GitLab,我們首先必須單擊工具欄上的 + 符號以啟動新專案。

在出現提示時,必須輸入專案名稱、名稱空間(使用者或組)和可見性級別(私有、內部或公開)。

專案的引數允許將來進行調整,因此這些引數不是一成不變的。

選擇 建立專案後,將建立該專案。

  • 我們可以將新建立的專案連結到本地 Git 倉庫。

  • GitLab 提供了 SSH 和 HTTPS 訪問的 URL,位於專案網頁的頂部。

  • 我們將使用這些 URL 設定 Git 遠端,以將我們的本地倉庫與 GitLab 同步。

我們使用這些命令來處理現有的 GitLab 倉庫

新增遠端:如果我們希望將本地倉庫連結到 GitLab 專案,請使用此命令新增遠端 gitlab

git remote add gitlab https://server/namespace/project.git

這裡,https://server/namespace/project.git 是我們的 GitLab 專案的 URL。

克隆倉庫:如果我們還沒有本地副本,則可以使用以下方法直接從 GitLab 克隆倉庫

git clone https://server/namespace/project.git

此命令將預設遠端稱為 origin 設定為 GitLab URL,並生成倉庫的本地副本。

Web UI 中的檢視:GitLab 的 Web 介面在倉庫中提供多個檢視。

專案主頁上顯示了最近的活動,並且我們可以透過頂部的導航連結訪問專案的文件和提交日誌。

由於這些功能,我們可以更有效地管理和審查倉庫。

協同工作

我們可以使用合併請求或提供直接推送訪問來協同處理 GitLab 專案。

  • 直接推送訪問:透過在 成員區域中向用戶授予 開發者或更高級別的訪問許可權,我們可以授予他們對提交和分支的直接推送訪問許可權。

  • 合併請求:如果使用者沒有推送訪問許可權,他們仍然可以透過分叉專案或建立分支併發送合併請求來做出貢獻。

    專案所有者使用此方法選擇接受哪些貢獻,從而可以控制地整合修改。

  • 討論和審查:合併請求和問題支援深入的討論和程式碼審查,並提供分配責任和將工作分類為里程碑的工具。

GitLab 還提供了其他功能,例如 專案 Wiki維護工具

大多數管理都可以透過 Web 介面完成,從而減少了對直接伺服器設定的需求。

廣告