在 一台电脑 + 一个 Ubuntu 虚拟机 上搭建 自己的 Git 服务器,并在本机或其他机器上使用。
整个结构是:
你的电脑
├─ Windows / Mac 主机
│
└─ Ubuntu 虚拟机
└─ Git Server
客户端可以是:
- 主机
- 虚拟机
- 局域网其他电脑
一、准备环境
进入 Ubuntu 虚拟机。
更新系统:
bash
sudo apt update
安装 Git 和 SSH:
bash
sudo apt install git openssh-server -y
确认 SSH 服务运行:
bash
sudo systemctl status ssh
如果没有运行:
bash
sudo systemctl start ssh
设置开机启动:
bash
sudo systemctl enable ssh
二、查看虚拟机 IP
bash
ip addr
找到类似:
192.168.56.101
记住这个 IP。
三、创建 Git 用户(推荐)
为了安全,一般专门建一个 git 用户。
bash
sudo adduser git
输入密码即可。
切换用户:
bash
su - git
四、创建 Git 仓库目录
在 git 用户目录:
bash
mkdir repos
cd repos
创建一个仓库:
bash
git init --bare project.git
这里 --bare 非常重要。
结构会变成:
project.git
├─ HEAD
├─ config
├─ objects
└─ refs
这是 服务器仓库结构。
五、设置访问权限
回到 root:
bash
exit
修改权限:
bash
sudo chown -R git:git /home/git/repos
六、客户端连接 Git 服务器
假设:
服务器IP: 192.168.56.101
仓库: /home/git/repos/project.git
用户: git
克隆仓库:
bash
git clone git@192.168.56.101:/home/git/repos/project.git
第一次连接会提示:
Are you sure you want to continue connecting?
输入:
yes
然后输入 git 用户密码。
克隆成功。
七、开始使用 Git
进入项目:
bash
cd project
创建文件:
bash
echo hello > readme.txt
提交:
bash
git add .
git commit -m "first commit"
推送到服务器:
bash
git push origin master
服务器仓库就有代码了。
八、其他电脑访问
只要知道 IP 就能访问:
git clone git@192.168.56.101:/home/git/repos/project.git
九、免密码登录(推荐)
使用 SSH Key。
在客户端生成 key:
bash
ssh-keygen
一路回车。
生成:
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
上传公钥:
bash
ssh-copy-id git@192.168.56.101
以后:
git push
不需要密码。
十、创建多个仓库
进入服务器:
bash
su - git
cd repos
创建:
bash
git init --bare test.git
git init --bare firmware.git
git init --bare driver.git
客户端克隆:
git clone git@192.168.56.101:/home/git/repos/firmware.git
十一、简单权限管理
如果团队多人:
创建用户:
bash
sudo adduser dev1
sudo adduser dev2
然后共享仓库:
bash
sudo chown -R git:dev1 /home/git/repos/project.git
或者使用:
gitolite
做权限管理。
十二、可视化 Git 服务器(推荐)
如果你想要像公司一样的界面。
可以安装 Gitea。
特点:
- 非常轻量
- 一个二进制
- Web界面
- 用户管理
- 仓库管理
- CI插件
下载:
bash
wget https://dl.gitea.io/gitea/latest/gitea-linux-amd64
chmod +x gitea-linux-amd64
运行:
bash
./gitea-linux-amd64 web
浏览器访问:
http://虚拟机IP:3000
你会看到类似 GitHub 的界面。
可以:
- 创建仓库
- 管理用户
- 提交代码
- 看 commit
十三、完整使用流程
开发流程:
1 写代码
2 git add
3 git commit
4 git push
5 服务器保存版本
其他电脑:
git pull
同步代码。
十四、最终架构
你本地就变成:
电脑
├─ Windows / Mac
│
├─ Ubuntu虚拟机
│ └─ Git Server
│
└─ 客户端开发
作用:
- 代码版本管理
- 多项目管理
- 代码备份
- 团队协作
十五、一个真实嵌入式开发流程
例如做 STM32 项目:
firmware
├─ drivers
├─ bsp
├─ app
├─ middleware
└─ docs
开发流程:
git clone
写代码
git commit
git push
服务器自动保存所有版本。
十六、常用 Git 命令
提交:
bash
git add .
git commit -m "message"
git push
更新:
bash
git pull
查看状态:
bash
git status
查看历史:
bash
git log
十七、备份服务器(重要)
定期备份:
bash
tar -czvf git-backup.tar.gz /home/git/repos
最后总结
最简单可靠的方案:
Ubuntu虚拟机
↓
安装 git + ssh
↓
创建 git 用户
↓
创建 bare 仓库
↓
客户端 clone / push
10分钟就能跑起来。
如果你愿意,我可以再给你一套 "个人开发者最舒服的 Git 架构",很多程序员自己都在用,比如:
Gitea + Git + CI + 代码门禁
整个系统 只需要 300MB 内存,但体验接近 GitHub,非常适合个人或小团队。