zoukankan      html  css  js  c++  java
  • 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即可完成创建。

  • 相关阅读:
    判断图片是否存在,不存在则显示默认图片
    移动端开发时代理手机http访问查看效果(iphone)
    VS Code搭建TypeScript开发环境
    map,foreach和for的使用
    记一些常用的git命令
    js中创建对象的5种方法
    vuex简单使用
    记一下Slot的使用
    ES6中的箭头函数和普通函数有什么区别?
    计算属性、方法、侦听属性的区别
  • 原文地址:https://www.cnblogs.com/azureology/p/13890715.html
Copyright © 2011-2022 走看看