GitLab
一站式 DevOps 研發維運平台
軟體分類 程式開發 / DevOps
軟體標籤
Color Chooser樂器編曲DuolingoCreative Commons Attribution-ShareAlike 2.0 license
開發廠商 GitLab Inc.
產品說明
GitLab 是一個基於 Git 的完整 DevOps 平台。與 GitHub 不同的是,GitLab 最初就將目標設定為「單一應用程式(Single Application)」,這意味著從專案規劃、原始碼管理、持續整合/部署(CI/CD)到監控與安全掃描,所有功能都整合在同一個介面中,無需在不同的工具(如 Jira、Jenkins、Harbor)之間切換。
GitLab 分為企業版(EE)與社群版(CE)。其中 GitLab CE (Community Edition) 是完全開源免費的,企業可以將其部署在自己的私有伺服器(Self-managed)上,擁有對資料的完全掌控權。這使得它成為許多重視資安與隱私的企業、政府單位以及開源專案的首選。其內建的 GitLab CI/CD 被公認為業界最強大的自動化管線工具之一,透過 .gitlab-ci.yml 即可輕鬆定義複雜的建置流程。
核心特色:
- 一站式平台:整合了 Issue Tracking、Git Repository、Code Review (Merge Request)、CI/CD Pipeline 與 Wiki,降低工具碎片化。
- 強大的 CI/CD:內建 Runner 機制,支援 Docker 容器化建置,與原始碼庫深度整合,無需像 Jenkins 那樣進行繁瑣的 Webhook 設定。
- 容器映像檔庫:內建 Container Registry,建置好的 Docker Image 可以直接推送到 GitLab 內部儲存,方便部署。
- 細緻的權限管理:支援 LDAP/AD 整合,並能針對不同分支(Protected Branches)設定嚴格的推送與合併權限。
- 自我託管:提供 Omnibus 安裝包與 Cloud Native Helm Charts,讓你在幾分鐘內就能架設起企業級的程式碼託管平台。
常用指令
GitLab 的管理主要分為兩個層面:系統管理員(維護伺服器)與一般開發者(使用 CLI 工具)。
系統管理 (Omnibus 安裝)
對於自我託管的管理員,gitlab-ctl 是控制整體服務的核心指令:
# 重新配置 GitLab (修改設定檔 /etc/gitlab/gitlab.rb 後必做)
sudo gitlab-ctl reconfigure
# 重新啟動所有服務 (Nginx, Puma, Sidekiq, Postgres...)
sudo gitlab-ctl restart
# 查看即時日誌 (除錯用)
sudo gitlab-ctl tail
# 建立系統備份
sudo gitlab-backup create
開發者操作 (GLAB CLI)
類似 GitHub 的 gh,GitLab 也有官方的命令列工具 glab,讓開發者能在終端機完成大部分操作:
# 複製專案
glab repo clone user/project
# 建立合併請求 (Merge Request)
glab mr create --title "Fix login bug" --description "Fixed the auth issue"
# 查看當前管線 (Pipeline) 狀態
glab pipeline status
| 指令 (glab) | 功能說明 | 應用場景 |
|---|---|---|
glab auth login | 登入 | 連結到你的 GitLab 實例 (支援 gitlab.com 或自架版) |
glab issue list | 列出議題 | 查看當前專案有哪些待解決的 Issue |
glab mr list | 列出 MR | 查看有哪些待審核的程式碼合併請求 |
glab mr approve | 批准 MR | 審核通過別人的程式碼 |
glab ci view | 查看 CI | 在終端機直接查看 CI/CD 的 Log 輸出 |
glab release create | 發布版本 | 建立新的 Release 並上傳編譯好的檔案 |
進階技巧
- GitLab Runner:這是執行 CI/CD 任務的 Worker。你可以將 Runner 安裝在任何機器上(甚至是你的筆電),並註冊回 GitLab Server,讓閒置的算力協助跑測試。
# 註冊 Runner gitlab-runner register --url [https://gitlab.example.com/](https://gitlab.example.com/) --registration-token <TOKEN> - Auto DevOps:GitLab 的自動化極致。若你的專案包含標準的
Dockerfile,啟用此功能後,GitLab 會自動偵測、建置、測試並部署你的應用,完全無需撰寫 CI 設定檔。
操作介面

