基于centos release 7.9.2009的LINUX进行Git服务器搭建

发布时间 2023-05-02 16:32:34作者: 大于昨天

1.安装 Git
首先需要在 CentOS Linux 7.9.2009 上安装 Git。可以使用以下命令在命令行中安装:

sudo yum install git
2.创建 Git 仓库
在 CentOS 上创建 Git 仓库有两种方式:创建本地 Git 仓库或创建远程 Git 仓库。如果想要将 CentOS Linux 7.9.2009 作为 Git 服务器,需要创建远程 Git 仓库。

在服务器上选择一个目录作为 Git 仓库的根目录,并使用以下命令创建 Git 仓库:

sudo mkdir -p /srv/git/myproject.git
sudo chown git:git /srv/git/myproject.git
cd /srv/git/myproject.git
sudo git init --bare
其中,/srv/git/myproject.git 是 Git 仓库的根目录,git 是一个新建的系统用户和组用于运行 Git 服务,--bare 参数表示创建一个不包含工作区的 Git 仓库。

3.配置 Git 用户
需要创建一个专用的系统用户来管理 Git 仓库。可以使用以下命令创建 git 用户和组:

sudo adduser --system --shell /bin/bash --comment 'Git Version Control' --user-group git
4.配置 SSH 访问
为了安全地使用 Git 服务,需要配置 SSH 访问。可以通过以下步骤配置 SSH:

创建 SSH 公钥并将其添加到 Git 仓库中。
在 Git 仓库的根目录中创建 authorized_keys 文件,将 SSH 公钥添加到该文件中。
可以使用以下命令创建 SSH 公钥:

ssh-keygen
在命令行中执行上述命令后,系统将提示您输入 SSH 密钥的名称和密码。输入 id_rsa 作为密钥名称并按 Enter,之后提示输入密码,也可以直接回车不设密码。

之后,可以将公钥添加到 Git 仓库中:

sudo mkdir -p /srv/git/myproject.git/hooks
sudo chmod 755 /srv/git/myproject.git/hooks
sudo touch /srv/git/myproject.git/hooks/post-receive
sudo chmod +x /srv/git/myproject.git/hooks/post-receive
sudo sh -c "echo '#!/bin/bash' > /srv/git/myproject.git/hooks/post-receive"
sudo sh -c "echo 'git --work-tree=/srv/myproject --git-dir=/srv/git/myproject.git checkout -f' >> /srv/git/myproject.git/hooks/post-receive"
sudo chown -R git:git /srv/git/myproject.git/hooks
以上命令创建了一个 post-receive 钩子来自动更新代码。该钩子可以确保在每次推送新代码时,仓库中的文件夹与 Git 仓库中的内容一致。

5.启动 Git 服务
为了启动 Git 服务,需要在 Git 仓库的根目录中运行以下命令:

sudo git daemon --reuseaddr --base-path=/srv/git --export-all --verbose --enable=receive-pack
该命令会在默认端口上启动 Git 服务。如果需要使用自定义端口,可以使用以下命令:

css
Copy code
sudo git daemon --reuseaddr --base-path=/srv/git --export-all --verbose --enable=receive-pack --port=8080
其中,--port=8080 表示 Git 服务将在 8080 端口上启动。

6.客户端访问 Git 服务器
现在已经成功搭建了 Git 服务器,可以使用 Git 客户端通过 SSH 协议访问 Git 仓库。可以使用以下命令从 Git 服务器克隆仓库:

git clone ssh://user@your-server.com:/srv/git/myproject.git
其中,user 是 Git 仓库的专用用户,your-server.com 是 Git 服务器的 IP 地址或域名,/srv/git/myproject.git 是 Git 仓库的根目录。

在使用 Git 客户端访问 Git 服务器时,需要输入 Git 服务器的 SSH 密钥。在 SSH 密钥对生成后,可以将公钥添加到 Git 服务器的 authorized_keys 文件中,以授权访问。