搭建本地Git服务器方案
如何搭建本地Git服务器
搭建本地Git服务器可以让团队成员在局域网内共享代码仓库,以下是几种常见的搭建方法:
方法一:使用SSH协议(最简单)
- 在服务器上创建Git用户
sudo adduser git
- 切换到git用户并创建仓库目录
su git mkdir ~/project.git cd ~/project.git
- 初始化裸仓库
git init --bare
- 在客户端克隆仓库
git clone git@server_ip:/home/git/project.git
方法二:使用Git Daemon(轻量级)
- 安装git-daemon
sudo apt-get install git-daemon-sysvinit # Ubuntu/Debian
- 创建仓库目录并初始化
mkdir /srv/git cd /srv/git git init --bare project.git
- 启动Git Daemon
git daemon --base-path=/srv/git --export-all --enable=receive-pack
- 客户端克隆
git clone git://server_ip/project.git
方法三:使用GitWeb(带Web界面)
- 安装GitWeb
sudo apt-get install gitweb # Ubuntu/Debian
- 配置Apache/Nginx
- 编辑/etc/gitweb.conf设置仓库路径
- 配置Web服务器指向GitWeb
- 访问Web界面
浏览器访问http://server_ip/gitweb
方法四:使用Gitolite(高级权限管理)
- 安装依赖
sudo apt-get install gitolite3
- 设置管理员
sudo adduser --system --shell /bin/bash --group git sudo su - git gl-setup /tmp/yourname.pub # 你的公钥文件
- 管理仓库和权限
编辑~/gitolite-admin/conf/gitolite.conf
安全建议
- 使用SSH密钥认证而非密码
- 限制git用户的shell访问(设置/etc/passwd中git用户的shell为/usr/bin/git-shell)
- 定期备份仓库
- 考虑使用防火墙限制访问IP
客户端配置
在客户端设置远程仓库:
git remote add origin git@server_ip:/path/to/repo.git
git push -u origin master
以上方法可以根据团队规模和需求选择适合的方案。对于小型团队,简单的SSH方法就足够了;大型团队可能需要Gitolite这样的权限管理系统。