在Linux下搭建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

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

现在,我们可以从远程主机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. 这将使您既可在本地计算机上查看该项目,也可在服务器上查看该项目。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Linux下搭建Git服务器步骤 - Python技术站

(1)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Centos7 mysql数据库安装及配置实现教程

    CentOS 7 MySQL 数据库安装及配置实现教程 MySQL是一种流行的开源数据库管理系统,本教程将指导你在CentOS 7上安装和配置MySQL数据库。 步骤一:安装MySQL 首先,打开终端并使用以下命令更新系统: sudo yum update 接下来,使用以下命令安装MySQL: sudo yum install mysql-server 步骤…

    Linux 2023年5月14日
    00
  • linux下安装lnmp集成环境

    linux下安装lnmp集成环境 教程地址:https://www.cnblogs.com/peteremperor/p/6750204.html 必须要用root用户,否则权限不够无法安装 安装最新稳定版命令:下载->解压->进入->安装 wget -c http://soft1.vpser.net/lnmp/lnmp1.5-full.t…

    Linux 2023年4月11日
    00
  • Linux平台搭建docker环境并简单使用示例

    我来给你讲解在Linux平台下搭建docker环境并简单使用示例的完整攻略。在本篇攻略中,我将演示如何在Ubuntu 18.04平台上搭建docker环境并运行两个不同的docker容器。接下来将按照以下步骤进行说明: 准备工作 首先,我们需要确保Ubuntu系统已经安装了以下软件包: apt-transport-https ca-certificates …

    Linux 2023年5月14日
    00
  • Linux下mysql源码安装笔记

    Linux下Mysql源码安装笔记 1. 环境要求 在安装Mysql之前,需要确保系统已经安装了以下软件包 gcc编译器 cmake bison ncurses-devel 2. 下载与解压 从Mysql官网(https://dev.mysql.com/downloads/mysql/)下载最新的源码包(tar.gz格式),保存到本地目录并解压 tar -z…

    Linux 2023年5月14日
    00
  • 在vmware虚拟机安装dpdk的详细过程

    在VMware虚拟机上安装DPDK可以为网络提供更高的性能和更低的延迟。下面是在VMware虚拟机上安装DPDK的详细过程: 安装 DPDK 的环境要求 在安装 DPDK 前,请确保你已经满足以下环境要求: DPDK 版本 Linux 内核版本 是否开启 NUMA 安装 VFIO 驱动 NIC 网卡 确认 CPU 支持 VT-d 以上环境我们已经基本满足了 …

    Linux 2023年5月24日
    00
  • Ubuntu/Debian 自有软件包构建私有源详解

    以下是“Ubuntu/Debian自有软件包构建私有源”的详细攻略: 什么是自有软件包构建私有源? 自有软件包构建私有源是指在Ubuntu/Debian系统上,自行构建软件包并发布到自己的私有源(也称为APT存储库)中,在系统中安装这些软件包时可以通过APT包管理器来进行。这样做可以方便地管理自己的软件包,同时也能够在多台服务器上共享同一个源。 构建私有源的…

    Linux 2023年5月14日
    00
  • Linux环境Oracle数据库访问出现ORA-01034错误:oracle not available解决

    首先将用户切换为Oracle用户登录,su – oracle; 进入:sqlplus / as sysdba; 问题现象: SQL> select * from dba_users; select * from dba_users*ERROR at line 1:ORA-01034: ORACLE not available 出现类似问题一般是由于监听…

    Linux 2023年4月12日
    00
  • 小白教程! Linux服务器上JDK安装配置方法

    小白教程!Linux服务器上JDK安装配置方法 在Linux服务器上安装Java Development kit (JDK)是很重要的一步,因为Java是许多应用程序开发和运营所依赖的基本环境。本文将介绍在Linux平台上安装和配置JDK的方法。 步骤一:下载JDK 前往Oracle官网下载JDK:https://www.oracle.com/java/te…

    Linux 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部