git init --bare
创建裸仓库,配置SSH访问权限并共享路径,团队成员通过
git clone
连接,此方法无需第三方服务,适合小团队内部协作,便于管理项目版本与权限控制。
Git本地服务器搭建指南
在团队协作或独立开发中,搭建本地Git服务器能实现代码的集中管理和高效同步,本文将详细介绍如何通过简单的步骤,在局域网或物理机环境中快速部署一个安全的Git本地服务器。
初始化裸仓库
裸仓库(bare repository)不包含工作目录,适合作为中央仓库,执行以下命令:
mkdir -p /opt/git/project.git cd /opt/git/project.git git init --bare
权限配置
确保仓库目录权限允许团队成员访问(以Linux为例):
chown -R gituser:gitgroup /opt/git/project.git # 替换为实际用户/组 chmod -R 775 /opt/git/project.git
生成SSH密钥(客户端操作)
在客户端生成密钥对:
ssh-keygen -t ed25519 # 推荐使用ed25519算法
将公钥(~/.ssh/id_ed25519.pub
复制到服务器的~/.ssh/authorized_keys
文件中。
测试SSH连接
客户端执行:
ssh gituser@server_ip # 替换为服务器用户名和IP
客户端克隆仓库
git clone gituser@server_ip:/opt/git/project.git
日常使用流程
git add . git commit -m "提交说明" git push origin main
安装Git的Web服务组件(如gitweb
或cgit
),或使用轻量级工具如:
# 使用Python临时启用HTTP服务(仅测试环境) cd /opt/git/project.git python3 -m http.server 8000
使用Gitosis/Gitolite
适用于团队权限控制,支持按分支、目录设置读写权限(Gitolite文档)。
配置钩子脚本(Hooks)
在/opt/git/project.git/hooks/
目录下添加脚本,
# post-receive示例:推送后自动部署 #!/bin/sh git --work-tree=/var/www/html checkout -f
/etc/passwd
将Git用户Shell改为git-shell
)。/opt/git
)。authorized_keys
文件权限(应为600
)。引用说明
本文参考了Git官方文档、SSH协议规范及开源社区最佳实践,技术细节可通过Git官网或Gitolite文档进一步查阅。