当前位置 : 主页 > 操作系统 > centos >

在Linux下搭建Git服务器步骤

来源:互联网 收集:自由互联 发布时间:2023-07-28
当我们需要在Linux下建立Git服务器时,可以使用以下步骤进行操作: 安装Git 在Linux服务器上安装Git命令行客户端,可以通过以下命令进行安装: sudo apt-get updatesudo apt-get install git 创建

当我们需要在Linux下建立Git服务器时,可以使用以下步骤进行操作:

安装Git

在Linux服务器上安装Git命令行客户端,可以通过以下命令进行安装:

sudo apt-get update
sudo apt-get install git 
创建Git用户

我们可以使用以下命令来创建Git用户和用户组:

sudo adduser git
sudo addgroup git

这里采用用户git作为服务器的Git用户。

创建证书认证

创建一个可用于Git Server的公钥-私钥对:

ssh-keygen

接着会让您输入相关的信息,直接回车即可生成。公钥和私钥会分别存在~/.ssh/id_rsa.pub~/.ssh/id_rsa(或您自己指定的路径)。

配置Git

在您的服务器上创建一个可供Git推送或拉取的空目录:

mkdir /srv/git/
cd /srv/git
mkdir project.git
cd project.git
git init --bare

这里新建了一个名为project.git的目录,这个目录就是您的Git项目目录。其中--bare标志表示这是一个裸的Git仓库。裸Git仓库没有工作目录,并且没有.gitignore,所以在这里不应该玩具体的代码。

接着,我们需要让Git用户拥有此仓库的读写权限,这可以通过以下命令实现:

sudo chown -R git:git /srv/git/project.git

这将使Git用户成为该文件夹及其所有子文件的所有者。

添加pre-receive钩子:

Git服务通常需要一些其他处理,例如撤销或控制提交。为此,我们需要添加一个特殊的标记文件pre-receive(没有扩展名),这可以在Git服务器中提供其他操作。为此,请输入以下命令:

cd /srv/git/project.git/hooks
vim pre-receive

然后添加以下内容:

#!/bin/sh
set -e
# Block force-push
for rejected in $(git rev-list $1..$3 --not --branches); do
  echo "[pre-receive hook] Notice: Someone force-push a commit ($rejected)"
  exit 1
done

保存,并输入以下命令:

chmod +x pre-receive
从远程主机clone

首先,我们需要为我们的使用者添加访问权限。要创建一个新用户,我们需要将指定的公钥添加到服务器上的授权文件中:

sudo mkdir ~git/.ssh
sudo touch ~git/.ssh/authorized_keys
sudo vim ~git/.ssh/authorized_keys

现在,将用户的公钥复制并粘贴到授权文件中。如果你有多个用户,那么每个用户都需要在授权列表中有一个条目。

自由互联热门推荐:PDF电子发票识别软件,一键识别电子发票并导入到Excel中!10大顶级数据挖掘软件!人工智能的十大作用!

现在,我们可以从远程主机clone该仓库。例如,如果您的服务器IP地址为123.123.123.123,则可以使用以下命令:

git clone git@123.123.123.123:/srv/git/project.git

这将拉取由Git服务器提供的裸项目。

样例 在Git服务器上新建user1用户和project仓库
  1. 第一步是在Git服务器上创建一个新用户。我们可以使用以下命令进行操作:
sudo adduser user1

这里采用用户user1作为服务器的Git用户。

  1. 创建一个Git项目目录并指定用户权限。
sudo mkdir -p /srv/git/project.git
sudo chown git:git /srv/git/project.git
chmod g+w /srv/git/project.git
cd /srv/git/project.git
sudo git init --bare
sudo chown -R git:git /srv/git/project.git
  1. 然后,我们需要添加Git用户的公钥至Git仓库授权文件中:
sudo mkdir -p /home/user1/.ssh
sudo chmod 700 /home/user1/.ssh
sudo vim /home/user1/.ssh/authorized_keys

将git用户的公钥拷贝到该文件内,并为了安全性,我们需要修改相关文件的权限:

sudo chmod 644 /home/user1/.ssh/authorized_keys
sudo chown user1:user1 /home/user1/.ssh/authorized_keys

最后user1用户只需要在本地输入以下命令来克隆项目:

git clone git@123.123.123.123:/srv/git/project.git
  1. user1用户添加一个简单的readme文件,并提交更改:
touch README.md
echo "Initial commit" >> README.md
git add README.md
git commit -m "Initial commit"
git push origin master
  1. 然后user1用户可以查看Git Web界面进行简单的代码审查:
http://123.123.123.123/gitweb/?p=project.git;a=summary

在Web页面中,您可以看到您刚才提交的更改。

从远程主机克隆Git仓库
  1. 在远端电脑(例如,您的笔记本)上生成SSH钥匙:
ssh-keygen
  1. 复制您的公钥,并将其添加到远程服务器上:
cat ~/.ssh/id_rsa.pub

将以上命令输出的内容复制到服务器的~/.ssh/authorized_keys文件中。

  1. 然后在您的本地计算机上,使用以下命令克隆项目:
git clone git@123.123.123.123:/srv/git/project.git
  1. 这将使您既可在本地计算机上查看该项目,也可在服务器上查看该项目。
上一篇:VMware Ubuntu安装图文教程
下一篇:没有了
网友评论