住宅主机搭建私有Git代码仓库零基础教程
你能从本文得到什么
很多开发者想在自己的电脑或家庭服务器上搭建一个私有Git仓库,用于备份个人项目、团队协作或学习版本控制。
但直接装GitLab太臃肿,用第三方托管又不放心。
本文面向零基础用户,手把手教你用住宅主机搭建最轻量的私有Git仓库,全程使用SSH访问,安全且零费用。
准备条件
在开始操作前,你需要确认以下条件:
- 一台能长期开机的住宅主机:可以是闲置旧电脑、NAS或云服务器。本文以Ubuntu 20.04为例,其他Linux发行版命令类似。
- 系统已安装OpenSSH服务:用于远程访问。大多数Linux系统默认安装,未安装时用
sudo apt install openssh-server。 - 客户端设备:另一台电脑或手机,用于克隆和推送代码。客户端也需安装Git。
- 内网穿透(可选):如需外网访问,需设置端口转发或使用frp等工具,本文仅以内网环境为例。
分步操作:从安装Git到完成推送
1. 在住宅主机上安装Git
执行以下命令安装Git:
sudo apt update
sudo apt install git -y
安装完成后,用git --version验证版本。
如果出现版本号,说明安装成功。
2. 创建裸仓库
裸仓库(bare repository)只存放版本历史,不包含工作目录,适合作为远程仓库。
我们先在主机上创建一个存放仓库的目录:
sudo mkdir -p /home/git/repos
sudo useradd -m -s /bin/bash git
sudo passwd git # 设置密码,按提示输入两次
然后切换到git用户并初始化裸仓库:
sudo -u git -H bash -c "cd /home/git/repos && git init --bare myproject.git"
此时 /home/git/repos/myproject.git 就是你的私有仓库。
3. 配置SSH访问
为了安全,我们通过SSH key认证,避免每次输入密码。
在客户端上生成SSH密钥(如果已有可跳过):
ssh-keygen -t ed25519 -C "your_email@example.com"
# 一直按回车使用默认路径
然后将公钥复制到住宅主机的git用户下:
ssh-copy-id git@192.168.1.100 # 换成你住宅主机的内网IP
如果提示“no such identity”,请手动将~/.ssh/id_ed25519.pub内容追加到主机/home/git/.ssh/authorized_keys中。
完成后测试SSH连接:
ssh git@192.168.1.100
如果无需密码且成功登录,说明配置成功。
退出SSH会话。
4. 从客户端克隆和推送代码
回到客户端,创建一个本地项目并初始化:
mkdir my_local_project
cd my_local_project
git init
echo "# My Project" > README.md
git add .
git commit -m "init"
然后添加远程仓库并推送:
git remote add origin git@192.168.1.100:/home/git/repos/myproject.git
git push -u origin master
如果一切正常,你会看到对象计数和写入完成的输出。
私有Git仓库就搭建好了。
避坑指南:常见问题与解决
- 权限拒绝(Permission denied):检查主机上
/home/git/.ssh/authorized_keys是否权限正确,应为600。执行chmod 600 /home/git/.ssh/authorized_keys修复。 - 防火墙阻止SSH端口:住宅主机默认22端口可能被防火墙拦截。运行
sudo ufw allow 22/tcp打开端口。 - 仓库路径写错:
git remote add中的路径是绝对路径,确保和git init --bare时一致。 - 内网IP变动:如果主机重启后IP变化,客户端需要更新remote地址。建议在路由器设置DHCP静态绑定。
- 备份裸仓库:定期将
/home/git/repos/整个目录备份到其他位置,防止磁盘损坏丢失代码。
效果验证与后续操作
完成推送后,在客户端执行以下命令确认仓库可用:
cd ..
mkdir test_clone
cd test_clone
git clone git@192.168.1.100:/home/git/repos/myproject.git
cd myproject
ls -la
如果能看到你之前提交的README.md,说明克隆成功。
你也可以在另一台电脑上重复克隆步骤,验证多端协作。
至此,你已经成功用住宅主机搭建了私有Git代码仓库。
如果你想进一步实现Web界面管理或自动化构建,可以继续学习安装Gitea或整合CI/CD工具。
本文以最轻量的方式满足基本版本控制需求,稳定且无额外开销,适合个人和小团队使用。