在团队协作开发或者个人项目管理中,经常会遇到需要统一存放代码的地方。这时候,一个私有的服务端Git仓库就显得特别实用。不像GitHub、GitLab这些公共平台,自己搭的服务端Git能更好地控制权限和数据安全,尤其适合公司内部项目或敏感代码的备份。
为什么要在服务端用Git
想象一下,你和同事都在改同一个项目,大家把代码随便发来发去,最后谁也不知道哪个是最新版。有了服务端Git,所有人统一从一个“中央仓库”拉取和推送代码,版本清晰,协作顺畅。而且,所有变更都有记录,就算误删也能找回,相当于给代码上了保险。
准备一台服务器
你可以用家里闲置的旧电脑、树莓派,或者租一台VPS。系统推荐用Linux,比如Ubuntu或CentOS,稳定又省资源。确保SSH服务已经开启,因为Git通常通过SSH协议通信。
创建Git用户
为了安全,不建议直接用root操作。先在服务器上创建一个专门的git用户:
sudo adduser git
设置密码后,切换到git用户:
su - git
初始化裸仓库
在git用户的家目录下创建一个项目仓库,比如叫myproject.git:
mkdir /home/git/myproject.git && cd /home/git/myproject.git
git init --bare
这里的--bare表示这是一个裸仓库,没有工作区,只用来存储版本数据,适合做远程仓库。
本地推送代码
在你的电脑上进入项目目录,添加远程地址:
git remote add origin git@your-server-ip:/home/git/myproject.git
第一次推送时,把本地分支推上去:
git push -u origin main
之后每次改完代码,执行git add、git commit后再git push,服务器上的仓库就会同步更新。
权限控制小技巧
如果多人使用,可以配置SSH密钥免密登录。每个开发者把自己的公钥发给你,你把公钥内容追加到git用户的~/.ssh/authorized_keys文件里。这样他们就能用SSH连接服务器,但看不到其他文件,保证了安全性。
日常备份更安心
除了团队协作,服务端Git还能当自动备份工具用。比如你每天写的笔记项目,写完提交一次,push到服务器,等于多了一份异地备份。哪怕笔记本丢了,代码还在服务器上。
结合脚本自动化
可以写个简单的shell脚本,每天定时提交并推送:
#!/bin/bash
cd /path/to/your/project
git add .
git commit -m "auto backup $(date +%Y-%m-%d)"
git push origin main
配合cron任务,每天凌晨跑一次,完全不用操心。
出问题怎么办
如果推送失败,先检查SSH是否通,命令是ssh git@your-server-ip。不通的话看防火墙或SSH服务状态。如果提示权限拒绝,确认公钥是否正确写入authorized_keys,以及文件权限是否为600。