Gogs搭建記錄與日常使用
阿新 • • 發佈:2020-10-28
背景
隨著專案組人數增加,打算將版本控制工具從SVN遷移至獨立GIT伺服器。
基礎需求:團隊管理,許可權控制,分支建立,issue跟蹤,程式碼合併。
額外需求:服務不依賴root許可權
考慮到GitLab部署較為複雜,記憶體開銷高,選用相對熟悉的Gogs進行搭建。
搭建
下載
得益於Gogs官方豐富的文件,使用獨立二進位制發行版進行部署並不複雜。
下載地址: https://dl.gogs.io
伺服器環境Ubuntu 18.04 LTS對應下載版本為Gogs_0.12.3_linux_amd64
由於內網伺服器並未開放root許可權,有部分操作與官方教程存在差異。
配置
初次使用執行./gogs web
資料型別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>
分支刪除
刪除遠端分支主要有兩種辦法:
- 開發人員提交pull request管理員同意合入後刪除。
- 本地使用
git push origin --delete <branch_name>
刪除遠端分支