CentOS 搭建 Git 服务器指南
一、环境准备
安装 CentOS
你需要一台运行 CentOS 的服务器,如果没有,可以通过虚拟机(如 VirtualBox)进行安装。
步骤:
下载 CentOS ISO 镜像文件。
创建新的虚拟机并选择下载的 ISO 镜像。
按照向导完成操作系统的安装。
更新系统
在配置之前,确保系统是最新的,打开终端并执行以下命令:
sudo yum update y
二、安装和配置 Git
安装 Git
CentOS 默认的 yum 源中可能不包含最新版本的 Git,建议添加新的 yum 源来获取最新版本。
步骤:
安装必要的依赖库:
sudo yum install curldevel expatdevel gettextdevel openssldevel zlibdevel gcc perlExtUtilsMakeMaker y
下载并安装最新版本的 Git:
cd /usr/local sudo mkdir git cd git sudo wget https://github.com/git/git/archive/v2.16.3.tar.gz sudo tar xzvf v2.16.3.tar.gz cd git2.16.3 sudo make prefix=/usr/local/git all sudo make prefix=/usr/local/git install
创建符号链接:
sudo ln s /usr/local/git/bin/git* /usr/bin/
验证安装
检查 Git 是否正确安装:
git version
三、配置 Git 用户和仓库
创建 Git 用户
为了安全起见,创建一个专门的用户用于管理 Git 仓库。
步骤:
创建用户组和用户:
sudo groupadd git sudo useradd git g git m s /usr/bin/gitshell sudo passwd git
设置用户 shell:
sudo vi /etc/passwd
找到git:x:...
这一行,将最后的 shell 修改为/usr/bin/gitshell
。
创建裸仓库
裸仓库是一种没有工作区的仓库,适用于服务器端存储。
步骤:
创建目录结构:
sudo mkdir p /home/git/repositories/learnproject.git
初始化仓库:
sudo chown R git:git /home/git/repositories/learnproject.git cd /home/git/repositories/learnproject.git git init bare
配置 SSH 访问
为了安全地访问服务器,使用 SSH 密钥进行认证。
步骤:
在服务器上生成 SSH 密钥对:
sudo su git sshkeygen t rsa C "your_email@example.com"
按提示操作,一路回车即可。
将公钥添加到~/.ssh/authorized_keys
:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 700 ~/.ssh exit
确保 SSH 服务正在运行:
sudo systemctl enable sshd sudo systemctl start sshd
四、客户端配置与克隆仓库
配置客户端
在本地主机(如 Windows)上安装 Git for Windows,并进行相关配置。
步骤:
下载安装 Git for Windows:https://gitscm.com/downloads
安装完成后,右键点击文件夹,选择 Git Bash Here 打开终端。
生成 SSH 密钥对:
sshkeygen t rsa C "your_email@example.com"
按提示操作,一路回车即可。
将公钥内容追加到服务器上的~/.ssh/authorized_keys
文件中。
克隆仓库
使用 SSH 方式克隆仓库。
步骤:
打开 Git Bash:
git clone git@服务器IP地址或域名:/home/git/repositories/learnproject.git
五、常见问题及解答
Q1: 克隆远程仓库时出现“Permission denied (publickey)”错误怎么办?
A1: 这个错误通常是由于公钥没有被正确添加到服务器的~/.ssh/authorized_keys
文件中,请检查以下几项:
1、确认公钥已经复制到本地 clipboard。
2、登录到服务器,编辑~/.ssh/authorized_keys
,确保公钥被正确添加。
3、确保客户端和服务器的 SSH 服务正常运行。
4、如果问题仍然存在,尝试重启 SSH 服务:sudo systemctl restart sshd
。
Q2: 如何更改已存在的 Git 仓库的默认路径?
A2: 如果需要更改现有仓库的默认路径,可以按照以下步骤操作:
1、停止当前使用的 Git 服务:sudo systemctl stop httpd
(假设使用的是 httpd)。
2、复制仓库文件到新的位置。
3、修改项目配置文件中的文档根目录路径,对于 httpd,修改/etc/httpd/conf/httpd.conf
中的DocumentRoot
。
4、确保新路径权限正确:sudo chown R git:git /new/path/to/repository
。
5、启动 Git 服务:sudo systemctl start httpd
。