搭建简易版Git服务器
适合小型团队或个人使用,仅通过命令行管理。无Web界面
1. 安装Git
CentOS 7用自带的源安装Git版本比较老, 版本为1.8。推荐使用第三方源安装:
sh
sudo yum -y install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo-1.10-1.x86_64.rpm
sudo yum install -y git
2. 创建Git用户和仓库目录
sh
# 创建git用户
sudo adduser --system --shell /bin/bash --create-home --comment "Git Version Control" git
# 创建仓库目录
sudo mkdir -p /data/git/repositories
sudo chown -R git:git /data/git
3. 配置SSH密钥认证
配置密钥可以免密操作git仓库,首先上传开发者的公钥,比如我的公钥在这里,上传到服务器上/opt/software/: 将公钥添加到git用户的授权列表
sh
sudo su - git
mkdir -p ~/.ssh && chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
# 将开发者的公钥追加到authorized_keys中
cat /opt/software/id_rsa.pub >> ~/.ssh/authorized_keys
4. 创建裸仓库
sh
# 以git用户身份创建仓库
sudo su - git
cd /data/git/repositories
mkdir myproject.git && cd myproject.git
git --bare init
5. 客户端克隆仓库
sh
git clone git@your-server-ip:/data/git/repositories/myproject.git
6. 常见报错
6.1 提示需要git的密码
客户端可能配置多个id_rsa.pub,请使用git识别的那个:
6.2 推送报错
执行git push -u origin master
报错:fatal: 'origin' does not appear to be a git repository fatal: Could not read from remote repository.
sh
git remote -v
若未显示任何内容,需添加远程仓库:
sh
git remote add origin git@your-server-ip:/data/git/repositories/myproject.git