11、Git之自建專案託管平臺(GitLab)

Javaer1995發表於2024-07-26

11.1、簡介

Github 是國外的專案託管平臺,由於網路問題,在國內訪問和使用不是很方便。

Gitee 是國內的專案託管平臺,雖然在訪問和使用上挺方便的,但依然讓人擔憂專案程式碼可能會被洩露。

因此,從企業或機構的角度出發,是傾向於在內部自建一個專案託管平臺,將絕對管理權控制在自己手中的。

GitLab 作為一個用於專案程式碼倉庫管理的開源專案,則能很好地滿足企業或機構在內部自建專案託管平臺的需求。

11.2、安裝

本節演示如何使用 rpm 安裝包,在 CentOS 7 中離線安裝 GitLab 。

11.2.1、下載安裝包

gitlab 官網下載地址:https://packages.gitlab.com/gitlab/gitlab-ce

清華大學開源軟體映象站下載地址(推薦):https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

image

如上圖所示,本文選擇使用 gitlab-ce-16.10.6-ce.0.el7.x86_64.rpm 版本的安裝包。

提示:EL7 是 Red Hat 7.x,CentOS 7.x 和 CloudLinux 7.x 的下載。

11.2.2、伺服器準備

本文將 GitLab 安裝在 CentOS 7 虛擬機器上,虛擬機器配置為 2 核 CPU 、4G 記憶體、16G 磁碟。

關於 CentOS 7 虛擬機器的安裝方法,請參考安裝CentOS7虛擬機器這篇文章。

注意:16G 磁碟是最低配置要求;我使用過 8G 磁碟的虛擬機器,安裝完 GitLab 後,再新建一個普通使用者賬號,就用完了 8G 磁碟的空間,甚至都還沒有建立任何專案倉庫。 關於如何擴容 CentOS 7 虛擬機器的磁碟,請參考VirtualBox擴容CentOS-7虛擬機器磁碟這篇文章。

11.2.3、上傳安裝包到伺服器

image

如上圖所示,使用 mobaxterm 之類的工具,將 rpm 安裝包上傳到 CentOS 伺服器。

11.2.4、執行安裝包

image

rpm -ivh 安裝包名稱

錯誤:依賴檢測失敗:
policycoreutils-python 被 gitlab-ce-16.10.6-ce.0.el7.x86_64 需要
image
注意:如果執行 GitLab 安裝包時存在上述錯誤,則需要先安裝 policycoreutils-python 依賴

11.2.5、修改external_url配置

image

如上圖所示,external_url 配置在 /etc/gitlab/gitlab.rb 檔案中。

vi /etc/gitlab/gitlab.rb

image

如上圖所示,external_url 配置預設值為 http://gitlab.example.com

image

如上圖所示,將 external_url 配置修改為 'http://192.168.56.120:10005

其中,192.168.56.120 是 GitLab 所在的伺服器的 IP ;10005 是自定義的埠,否則 GitLab 會佔用 80 埠。

11.2.6、重新載入配置檔案

image

gitlab-ctl reconfigure

注意:重新載入配置檔案的過程比較耗時,耐心等待即可,出現 gitlab Reconfigured! 即操作成功。
image

11.2.7、檢視埠占用情況

image

上圖為 CentOS 自身所使用的埠。

image

上圖為重新載入 GitLab 配置檔案後,埠的變化。

新載入 Gitlab 配置檔案,會自動啟動或重啟 Gitlab ;所以不用再重複執行啟動或重啟命令。

11.2.8、常用命令速查表

命令 作用
gitlab-ctl start 啟動 GitLab
gitlab-ctl restart 重啟 GitLab
gitlab-ctl stop 停止 GitLab
gitlab-ctl reconfigure 新載入 GitLab 配置檔案
gitlab-ctl status 檢視 GitLab 狀態
gitlab-rake gitlab:check SANITIZE=true 檢查 GitLab
gitlab-ctl tail 檢視 GitLab 日誌

11.2.9、檢視管理員初始化密碼

image

如上圖所示,在第一次成功重新載入配置檔案後,會為 GitLab 的 root 管理員賬號隨機生成一個初始化密碼;該密碼會在 24 小時後自動刪除。

cat /etc/gitlab/initial_root_password

11.3、Gitlab的基本使用

11.3.1、訪問GitLab登入頁

image

如上圖所示,使用在 11.2.5 節配置的 external_url (http://192.168.56.120:10005)即可訪問 GitLab 登入頁。

注意:如果訪問不了登入頁,可能是伺服器的防火牆問題,關掉防火牆即可;
image
systemctl stop firewalld

11.3.2、登入root管理員賬號

image

如上圖所示,使用生成的初始化密碼,登入root管理員賬號。

image

如上圖所示,這便是 GitLab 的主頁。

11.3.3、修改介面語言為中文

image

如上圖所示,點選“Preference”。

image

如上圖所示,將 Language 選擇為簡體中文,然後儲存修改。

11.3.4、修改root管理員密碼

image

如上圖所示,點選“編輯個人資料”。

image

如上圖所示,在“密碼”介面中,即可修改密碼。

image

如上圖所示,修改密碼後,需要重新登入。

11.3.5、停用註冊功能

image

如上圖所示,GitLab 預設開啟自由註冊賬號功能,但是 GitLab 一般用於企業內部,因此一般都會停用註冊功能,賬號應由 root 管理員建立。

image

image

如上圖所示,取消“已啟用註冊功能”,然後儲存更改即可。

image

如上圖所示,停用註冊功能後,登陸頁面的“立即註冊”入口消失了。

image

如上圖所示,如果想恢復啟用註冊功能,在“管理中心”->“設定”->“通用”中,可以找到“註冊限制”的配置項恢復配置。

11.3.6、建立新賬號

image

如上圖所示,在“管理中心”->“概覽”->“使用者”中,可以找到建立新使用者的按鈕。

image

如上圖所示,設定新使用者的名稱、使用者名稱和電子郵件。

image

如上圖所示,設定新使用者的許可權為“管理員”。

image

如上圖所示,新建使用者成功後,會自動跳轉到該使用者的資料頁,可以點選“編輯”按鈕,為該使用者重置密碼。

image

如上圖所示,為該使用者設定密碼後,點選“儲存更改”即可。

11.3.7、建立遠端倉庫

image

如上圖所示,點選“建立專案”。

image

如上圖所示,選擇“建立空白專案”。

image

如上圖所示,設定倉庫名稱、倉庫歸屬使用者、倉庫可見級別,然後點選“新建專案”按鈕,即可建立一個遠端庫倉庫。

image

如上圖所示,倉庫新建成功,可以獲取到這個倉庫的 HTTP 和 SSH 地址。

11.3.8、配置SSH金鑰

image

如上圖所示,點選“編輯個人資料”->“SSH金鑰”,進入配置SSH金鑰的介面;然後點選“新增新金鑰”按鈕。

image

如上圖所示,將在本地生成的 SSH 公鑰複製到 GitLab,然後點選“新增金鑰”即可完成SSH金鑰的配置。

提示:關於本地生成和檢視的 SSH 公鑰方式,請參考7.10.2 和 7.10.3 小節。

image

如上圖所示,已成功在 GitLab 中新增了一個本地電腦生成的公鑰。

這樣一來,以後在本地電腦,使用遠端倉庫的 SSH 地址執行 push (推送)命令的時候,就不需要登入了。

11.3.9、生成訪問令牌

image

如上圖所示,點選“編輯個人資料”->“訪問令牌”,進入配置訪問令牌的介面;然後點選“新增新令牌”按鈕。

image

如上圖所示,在新增訪問令牌的配置介面中,設定該訪問令牌的名稱(任意名稱,本例為for_idea),設定該令牌的過期時間,還有設定該令牌的許可權(本例選中api,即全許可權);然後點選“建立個人訪問令牌”即可生成一個訪問令牌。

image

如上圖所示,訪問令牌已成功生成。

注意:該訪問令牌相當於 GitLab 的賬號密碼,所以不能向陌生人透露。
此外,該訪問令牌要儘快複製儲存,否則重新整理頁面後就消失;如果沒能及時儲存,也可以刪除重新生成一個。

11.4、IDEA整合GitLab

11.4.1、安裝GitLab外掛

image

如上圖所示,在“File”->“Settings”->“Version Control”中可以看到,IDEA 預設沒有和 GitLab 的相關的功能,因此需要額外安裝 GitLab 外掛。

image

如上圖所示,在“Plugins”->“Marketplace”中,搜尋“GitLab”,即可找到 GitLab 外掛來安裝。

image

如上圖所示,安裝完成外掛後,需要重啟 IDEA 才能使用該外掛。

image

如上圖所示,GitLab 外掛安裝成功後,可以在“Version Control”中找到和 GitLab 的相關的功能。

11.4.2、配置GitLab伺服器

image

如上圖所示,在“Version Control”->“GitLab”中,點選“Add New GitLab Server”按鈕,在彈窗中,配置 GitLab 伺服器的地址。

注意:這裡使用到了 11.3.9 節生成的訪問令牌。

image

11.4.3、分享專案到GitLab

11.4.3.1、開啟分享彈窗

image

如上圖所示,點選“VCS”->“Import into Version Control”->“Share Project on GitLab”,即可開啟分享專案到 GitLab 的彈窗。

11.4.3.2、設定遠端庫屬性

image

如上圖所示,在彈窗中設定遠端庫的名稱(本例為 gitlab_gittest)、遠端庫的分組(本例為 lb-liaojy )、遠端庫的連線型別(本例為 SSH)以及遠端庫的可見級別(本例為 Public )。

11.4.3.3、分享操作效果

image

如上圖所示,確認進行 SSH 連線。

image

如上圖所示,在彈窗中點選“share”按鈕(相當於建立遠端庫然後push操作)後,專案成功地被分享到 GitLab 。

image

如上圖所示,在 GitLab 中可以看到遠端庫已存在。

關於如何使用 IDEA 推送更新到遠端庫、拉取更新到本地庫以及克隆遠端庫到本地,請參考10.4.4、10.4.5 和 10.4.6 節,本文不再贅述。

相關文章