实用科技屋
霓虹主题四 · 更硬核的阅读氛围

手把手教你搭建自己的Git服务器

发布时间:2026-01-22 09:21:23 阅读:198 次

为什么需要自建Git服务

团队做项目,代码托管是个刚需。用GitHub、GitLab这些平台当然方便,但有些公司或个人更在意数据隐私,不想把核心代码放在别人家的服务器上。这时候,自己搭一个Git服务器就成了更稳妥的选择。

比如你是个小团队负责人,客户要求代码不能外泄,连私有仓库都不放心。或者你在内网开发嵌入式设备,根本没法联网。这些场景下,本地Git服务器就是最佳方案。

选择合适的系统环境

大多数情况下,Linux服务器是首选。Ubuntu Server 20.04 或 CentOS 7 都很稳定,资源占用也不高。如果你只有台旧电脑或者树莓派,也能跑起来。

先确保系统已经更新到最新:

sudo apt update && sudo apt upgrade -y

然后安装必要的工具包:

sudo apt install git openssh-server -y

创建专用用户管理代码库

别直接用root或者你的日常账户跑Git服务。新建一个专门的git用户,安全又清晰:

sudo adduser git

设置完密码后,切换到这个用户:

su - git

初始化一个空白仓库

进入git用户的家目录,创建一个项目仓库:

cd /home/git
mkdir myproject.git
cd myproject.git
git init --bare

这里的 --bare 参数很重要,它表示这是一个不带工作区的仓库,专用于远程推送和拉取。

客户端如何连接并使用

在你的开发机上,比如笔记本电脑,执行克隆命令:

git clone git@你的服务器IP:/home/git/myproject.git

第一次连接会提示是否信任主机指纹,输入 yes 继续。之后就能像用GitHub一样提交代码了。

如果不想每次输密码,可以把本地的SSH公钥放到服务器上:

cat ~/.ssh/id_rsa.pub | ssh git@你的服务器IP \"mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys\"

权限控制的小技巧

默认情况下,所有能通过SSH登录git用户的人都能读写仓库。如果想精细化控制,可以用 Gitolite 或者 Gitea 这类工具。

比如用Gitolite,只需要把管理员的公钥传上去,它就能自动管理多个仓库和不同用户的访问权限,配置文件也用Git来维护,非常方便。

备份与日常维护

自建服务器最大的好处是完全掌控。你可以加个定时任务,每天凌晨把仓库打包备份到NAS里:

0 2 * * * tar -czf /backup/git-$(date +\%F).tar.gz /home/git/*.git

再配合rsync同步到另一台机器,基本就不用担心数据丢失了。

平时注意查看磁盘空间,尤其是日志增长快的时候。一条 df -h 能省去很多麻烦。

进阶:用Docker快速部署Gitea

如果你想要图形界面,又不想折腾配置,可以直接用Docker跑Gitea:

docker run -d \
-p 3000:3000 \
-p 222:22 \
-v /data/gitea:/data \
--name=gitea \
gitea/gitea:latest

启动后访问 http://你的IP:3000,按页面引导一步步完成初始化,几分钟就能拥有一个功能完整的Git服务平台,支持用户注册、仓库管理、Issue跟踪等。