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命令維持后台運行。

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

該命令將不產生nohup.out日志文件,確認配置無誤后執行。

使用

搭建完成后通知項目成員登錄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>刪除遠程分支。

合並請求

新功能開發終了,准備上線。訪問倉庫頁面【合並請求】標簽,
左側選擇master右側選dev,填寫原因並指定code-reviewer即可完成創建。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM