局域网求生指南:如何在公司内网搭建“极简版 GitHub”并跑通 PR 流程

📅 2026/6/25 14:11:14
局域网求生指南:如何在公司内网搭建“极简版 GitHub”并跑通 PR 流程
在很多对数据安全性要求极高、或者与外网物理隔离的单位如科研院所、金融机构或涉密企业里大家往往过着“无法访问 GitHub”的单机生活。“没有公网我们就不能用优雅的网页端PRPull Request和代码评审Code Review功能了吗难道只能倒退回用 U 盘拷贝代码、或者用邮件传源码的原始社会”当然不是今天这篇博客就手把手带你用一台普通的内网服务器甚至是一台配置稍好的旧电脑在公司局域网内搭建一个“私有版 GitHub”让团队在纯内网环境下也能享受流畅的 PR 协作流一、 技术选型内网搭建用什么神器在内网搭建 Git 服务端我们主要有两种主流选择GitLab (Community Edition)功能极其强大大厂标配。但它是个“油老虎”至少需要 4 核 8G 的服务器配置启动慢维护相对复杂。Gitea强烈推荐它是用 Go 语言写的极其轻量级。哪怕是一台双核 2G 的老旧办公电脑也能跑得飞起。最重要的是它的界面和 GitHub 相似度高达 90%同样拥有完整的代码仓库管理、团队权限划分、以及网页端 PR 功能。为了让大家用最快的速度用上 PR今天我们就以Gitea为例来进行全流程实操。二、 第一步在内网服务器上安装 Gitea假设你们单位已经提供了一台内网 Linux 服务器以 Ubuntu 为例并且拥有一个内网固定 IP比如192.168.1.100。1. 下载 Gitea 二进制文件由于没有外网你需要在一台有公网的电脑上下载好安装包然后通过 U 盘或内部传输工具拷贝到内网服务器。官方下载地址https://dl.gitea.com/gitea/建议选择稳定的 Release 版本下载对应架构如gitea-1.21-linux-amd64的文件。2. 部署并运行在内网 Linux 服务器上执行以下命令# 1. 赋予执行权限chmodx gitea-1.21-linux-amd64# 2. 将其重命名为简单的 giteamvgitea-1.21-linux-amd64 gitea# 3. 在后台启动 Gitea默认占用 3000 端口./gitea web三、 第二步初始化配置开箱即用当服务在后台跑起来后同局域网内的任何员工打开浏览器输入服务器的内网 IP 和端口例如[http://192.168.1.100:3000](http://192.168.1.100:3000)就会看到一个漂亮的初始化配置网页。只需要重点修改以下几项其余保持默认数据库类型如果嫌麻烦直接选SQLite3无需额外安装数据库数据直接存为文件如果团队大可以选 PostgreSQL/MySQL。基础 URLBase URL非常重要一定要改成内网服务器的实际 IP比如[http://192.168.1.100:3000/](http://192.168.1.100:3000/)。管理员账号在页面最下方填写一个你作为管理员的用户名和密码。点击“立即安装”。几秒钟后属于你们单位内部的“私有 GitHub”就诞生了四、 第三步在网页上建立团队仓库登录你刚刚创建的管理员账号。点击右上角的“”号 - 创建新仓库。填写仓库名称如Internal-Project设为“私有仓库”点击创建。在“组织/团队管理”里把你的同事们拉进来分配好各自的账号和开发权限。至此服务端的准备工作全部就绪接下来把接力棒交给客户端的开发人员。五、 第四步实战演练在内网跑通第一个 PR现在你和同事们可以在各自的工位电脑上像用 GitHub 一样开始协作了。整个标准的“内网 PR 协作流”如下[内网服务器 Gitea: main 分支] ────────────────────────────────────► (保持绝对稳定) │ ▲ │ 1. git clone │ 5. 网页端点击 Merge ▼ │ [员工本地电脑] ──► 2. 切出 feature 分支 ──► 3. 编写代码 ──► 4. git push origin1. 同事拉取内网仓库到本地同事在自己电脑的终端执行gitclone http://192.168.1.100:3000/YourGroup/Internal-Project.gitcdInternal-Project2. 切出独立功能分支开发拒绝直接在main分支写代码各自建立新分支gitcheckout-bfeature-report# ... 快乐地在本地写代码、本地 commit ...3. 同步主干消除冲突灵魂步骤在准备提交前先用我们之前学到的rebase大招把内网最新的main代码拉下来同步一下确保提交历史是一条干净的直线gitcheckout maingitpullgitcheckout feature-reportgitrebase main4. 推送分支到内网服务器gitpush origin feature-report5. 在内网网页上发起 PR合并请求此时打开内网网址[http://192.168.1.100:3000](http://192.168.1.100:3000)登录自己的账号进入项目页面网页顶部会醒目地提示你刚刚推送了 feature-report 分支。点击绿色的“创建合并请求 (Green Pull Request / Merge Request)”按钮。指定你的组长或同事为审阅人Reviewer。6. 组长审批与合入组长收到系统通知坐在自己的工位上打开内网网页就能清清楚楚地看到该员工改动了哪几行代码。觉得不妥直接在网页对应代码行下留言交流觉得非常完美点击“Approve通过”然后轻轻点击“合并分支”。代码正式安全地融入内网的main分支六、 总结内网协作的“三大纪律”在公司内网推行这套流程后建议团队内部约定好以下三条铁律能让项目质量更上一层楼分支保护在 Gitea 仓库设置里将main分支设为“受保护分支”禁止任何人直接push所有代码必须走 PR 流程。先变基后提单提 PR 前必须在本地做git rebase main把冲突在自己的电脑上解决掉绝不把带冲突的 PR 丢给组长。结对评审规定每一个 PR 必须有至少一名团队其他成员的网页端Approve签字否则不予合入。写在最后没有公网并不是我们写出“乱七八糟历史线”和“直接推主干引发崩溃”的借口。利用 Gitea / GitLab 这样的优秀开源工具哪怕在完全孤立的局域网里我们也能搭建出极其现代、优雅且安全的研发工作流。赶快在你们单位找台机器试试吧