Skip to content

搭建简易版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/: Alt text 将公钥添加到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识别的那个:
Alt text

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