在局域网内共享本地 Git 仓库的方法
要让同一局域网内的其他人访问你的本地 Git 仓库,有几种简单的方法可以实现:
方法一:使用 Git 内置协议(最简单)
- 在仓库所在电脑上启动 Git 内置服务器:
bash
cd /path/to/your/repo
git daemon --verbose --export-all --base-path=. --enable=receive-pack
这会在默认端口 (9418) 启动一个只读的 Git 服务器。
- 其他用户克隆仓库:
bash
git clone git://<你的IP地址>/<仓库目录名>
例如:
bash
git clone git://192.168.1.100/my-project
方法二:使用 HTTP 协议(需要 Python)
- 临时 HTTP 服务器:
bash
cd /path/to/your/repo
python3 -m http.server 8000 --bind 0.0.0.0
- 其他用户克隆:
bash
git clone http://<你的IP地址>:8000/
方法三:使用 SSH 协议(最安全)
-
确保 SSH 服务已启动(通常 macOS/Linux 自带)
-
其他用户克隆:
bash
git clone ssh://<你的用户名>@<你的IP地址>/path/to/your/repo
例如:
bash
git clone ssh://user@192.168.1.100/home/user/projects/my-repo
方法四:使用共享文件夹
-
将仓库目录设为共享文件夹(通过 SMB/NFS)
-
其他用户克隆:
bash
git clone file:////<网络路径>/repo
例如 Windows:
bash
git clone file:////192.168.1.100/Shared/my-repo
注意事项
- 查看本机局域网 IP:
- Windows:
ipconfig - macOS/Linux:
ifconfig或ip a
- 防火墙设置:
- 确保相关端口(9418, 8000, 22等)在防火墙中开放
- 权限问题:
- 确保其他用户有读取仓库文件的权限
- 长期解决方案:
- 对于长期协作,建议搭建 GitLab、Gitea 等专业 Git 服务
最推荐的简单方案
对于临时共享,推荐使用 Git 内置协议:
bash
# 在仓库电脑上
cd /path/to/repo
git daemon --verbose --export-all --base-path=. --enable=receive-pack
# 在其他电脑上
git clone git://<IP地址>/.
这样设置最简单,且不需要额外配置。