Git Daemon 方式共享本地目录

135 阅读2分钟

要通过 Git Daemon 方式共享本地目录,您需要按照以下步骤进行:

  1. 准备共享的仓库 首先,确保您的本地仓库已经正确初始化并且包含了您想要共享的内容:
# 进入您想要共享的项目目录
cd /path/to/your/git/repository

# 如果还没有初始化为git仓库,先初始化
git init

# 添加并提交您的代码
git add .
git commit -m "Initial commit"
  1. 创建一个裸仓库(可选但推荐) 为了更好地通过 Git Daemon 共享,建议创建一个裸仓库:
# 在仓库的父目录创建一个裸仓库
git clone --bare /path/to/your/git/repository /path/to/shared/repository.git
  1. 启动 Git Daemon 使用 Git Daemon 开始共享您的仓库:
# 确保 git-daemon 已安装
# 在 Ubuntu/Debian 上可以通过 sudo apt-get install git-daemon-run 安装

# 启动 Git Daemon
git daemon --reuseaddr --base-path=/path/to/shared/directory /path/to/shared/directory

关键参数解释:

  • --reuseaddr:允许服务器快速重启
  • --base-path:指定共享目录的基础路径
  • 最后的路径是实际共享的目录
  1. 确保仓库可以被克隆 在要共享的仓库目录下创建 git-daemon-export-ok 文件:
# 在仓库目录下创建标记文件
touch /path/to/shared/repository.git/git-daemon-export-ok

也可以使用参数 --export-all 直接全部导出

  1. 防火墙设置 确保防火墙允许 9418 端口(Git Daemon 默认端口)通过:
# 对于使用 ufw 的系统
sudo ufw allow 9418/tcp
  1. 其他人克隆仓库 其他人可以通过以下方式克隆您的仓库:
# 使用 git:// 协议
git clone git://your_ip_address/repository.git

注意事项:

  • Git Daemon 是只读的,不支持推送
  • 确保服务器网络可访问
  • 对于公网服务器,请注意安全配置

额外建议:

  • 对于长期运行的服务,可以使用 systemd 或其他服务管理工具来管理 Git Daemon
  • 对于更安全的共享方式,考虑使用 SSH 或配置 Git HTTP 服务器