HCRM博客

如何在CentOS上搭建Git服务器?

CentOS 搭建 Git 服务器指南

一、环境准备

如何在CentOS上搭建Git服务器?-图1
(图片来源网络,侵权删除)

安装 CentOS

你需要一台运行 CentOS 的服务器,如果没有,可以通过虚拟机(如 VirtualBox)进行安装。

步骤:

下载 CentOS ISO 镜像文件。

创建新的虚拟机并选择下载的 ISO 镜像。

按照向导完成操作系统的安装。

更新系统

在配置之前,确保系统是最新的,打开终端并执行以下命令:

如何在CentOS上搭建Git服务器?-图2
(图片来源网络,侵权删除)
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

创建符号链接:

如何在CentOS上搭建Git服务器?-图3
(图片来源网络,侵权删除)
    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

分享:
扫描分享到社交APP
上一篇
下一篇