1. 程式人生 > 實用技巧 >Gogs搭建記錄與日常使用

Gogs搭建記錄與日常使用

背景

隨著專案組人數增加,打算將版本控制工具從SVN遷移至獨立GIT伺服器。
基礎需求:團隊管理,許可權控制,分支建立,issue跟蹤,程式碼合併。
額外需求:服務不依賴root許可權
考慮到GitLab部署較為複雜,記憶體開銷高,選用相對熟悉的Gogs進行搭建。

搭建

下載

得益於Gogs官方豐富的文件,使用獨立二進位制發行版進行部署並不複雜。
下載地址: https://dl.gogs.io
伺服器環境Ubuntu 18.04 LTS對應下載版本為Gogs_0.12.3_linux_amd64
由於內網伺服器並未開放root許可權,有部分操作與官方教程存在差異。

配置

初次使用執行./gogs web

後訪問<server_ip>:3000進行配置
資料型別SQLite3路徑預設,倉庫預設儲存在家目錄
由於缺少root許可權,無法給gogs建立獨立git使用者,將執行系統使用者改為當前登入使用者
SSH與HTTP地址根據內網ip進行對應修改,底部伺服器和其他服務設定中勾選:
☑️啟用離線模式
☑️禁用Gravatar服務
☑️禁止使用者自主註冊
☑️啟用登陸訪問限制

執行

為避免ssh斷開後gogs服務終止,使用nohup命令維持後臺執行。
該命令將不產生nohup.out日誌檔案,確認配置無誤後執行。

#!/bin/sh
nohup ~/gogs/gogs web > /dev/null 2>&1 &

管理

搭建完成後通知專案成員登入Gogs配置SSH Key並修改密碼。

許可權管理

預設倉庫master分支將設推送保護,僅接受管理員提交或來自其他分支的merge請求。
團隊人數不多時可以私人建倉,通過新增協作者的方式協同開發。
團隊人數較多時可以建立組織,分配讀寫許可權將應用於組織的所有倉庫。
對於已有倉庫也可由倉主或管理員將倉庫所有權轉移給組織。

日常開發

分支建立

Gogs網頁前端不含分支建立功能,因此需要在本地手動建立後同步至遠端倉庫。
開發者建立分支不受限制,日常開發使用git checkout -b <branch_name>建立並轉到開發分支。
完成開發後使用git push origin <branch_name>

提交修改。

分支刪除

刪除遠端分支主要有兩種辦法:

  1. 開發人員提交pull request管理員同意合入後刪除。
  2. 本地使用git push origin --delete <branch_name>刪除遠端分支