一台电脑 + 一个 Ubuntu 虚拟机 上搭建 自己的 Git 服务器,并在本机或其他机器上使用。

整个结构是:

你的电脑
 ├─ Windows / Mac 主机
 │
 └─ Ubuntu 虚拟机
      └─ Git Server

客户端可以是:

  • 主机
  • 虚拟机
  • 局域网其他电脑

一、准备环境

进入 Ubuntu 虚拟机。

更新系统:

sudo apt update

安装 Git 和 SSH:

sudo apt install git openssh-server -y

确认 SSH 服务运行:

sudo systemctl status ssh

如果没有运行:

sudo systemctl start ssh

设置开机启动:

sudo systemctl enable ssh

二、查看虚拟机 IP

ip addr

找到类似:

192.168.56.101

记住这个 IP。


三、创建 Git 用户(推荐)

为了安全,一般专门建一个 git 用户。

sudo adduser git

输入密码即可。

切换用户:

su - git

四、创建 Git 仓库目录

在 git 用户目录:

mkdir repos
cd repos

创建一个仓库:

git init --bare project.git

这里 –bare 非常重要。

结构会变成:

project.git
 ├─ HEAD
 ├─ config
 ├─ objects
 └─ refs

这是 服务器仓库结构


五、设置访问权限

回到 root:

exit

修改权限:

sudo chown -R git:git /home/git/repos

六、客户端连接 Git 服务器

假设:

服务器IP: 192.168.56.101
仓库: /home/git/repos/project.git
用户: git

克隆仓库:

git clone git@192.168.56.101:/home/git/repos/project.git

第一次连接会提示:

Are you sure you want to continue connecting?

输入:

yes

然后输入 git 用户密码。

克隆成功。


七、开始使用 Git

进入项目:

cd project

创建文件:

echo hello > readme.txt

提交:

git add .
git commit -m "first commit"

推送到服务器:

git push origin master

服务器仓库就有代码了。


八、其他电脑访问

只要知道 IP 就能访问:

git clone git@192.168.56.101:/home/git/repos/project.git

九、免密码登录(推荐)

使用 SSH Key。

在客户端生成 key:

ssh-keygen

一路回车。

生成:

~/.ssh/id_rsa
~/.ssh/id_rsa.pub

上传公钥:

ssh-copy-id git@192.168.56.101

以后:

git push

不需要密码。


十、创建多个仓库

进入服务器:

su - git
cd repos

创建:

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

十一、简单权限管理

如果团队多人:

创建用户:

sudo adduser dev1
sudo adduser dev2

然后共享仓库:

sudo chown -R git:dev1 /home/git/repos/project.git

或者使用:

gitolite

做权限管理。


十二、可视化 Git 服务器(推荐)

如果你想要像公司一样的界面。

可以安装 Gitea

特点:

  • 非常轻量
  • 一个二进制
  • Web界面
  • 用户管理
  • 仓库管理
  • CI插件

下载:

wget https://dl.gitea.io/gitea/latest/gitea-linux-amd64
chmod +x gitea-linux-amd64

运行:

./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 命令

提交:

git add .
git commit -m "message"
git push

更新:

git pull

查看状态:

git status

查看历史:

git log

十七、备份服务器(重要)

定期备份:

tar -czvf git-backup.tar.gz /home/git/repos

最后总结

最简单可靠的方案:

Ubuntu虚拟机
    ↓
安装 git + ssh
    ↓
创建 git 用户
    ↓
创建 bare 仓库
    ↓
客户端 clone / push

10分钟就能跑起来。


如果你愿意,我可以再给你一套 “个人开发者最舒服的 Git 架构”,很多程序员自己都在用,比如:

Gitea + Git + CI + 代码门禁

整个系统 只需要 300MB 内存,但体验接近 GitHub,非常适合个人或小团队。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐