配置一个 git 客户端

使用具有 root 用户的 ssh 连接到 git-client.on-itroad.com。

通过在 /etc/hosts 中添加以下行来配置名称解析。

[root@git-client ~]# echo "192.168.1.129 git-server.on-itroad.com git-server" >> /etc/hosts

使用 yum 命令安装 git rpm。

[root@git-client ~]# yum install -y git
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Package git-1.8.3.1-19.el7.x86_64 already installed and latest version
Nothing to do

git 已经安装在 git-client.on-itroad.com 上,因此 yum 没有执行任何安装。

以 jackli 用户身份连接并在 jackli@git-client.on-itroad.com 和 git@git-server.on-itroad.com 之间配置基于密钥的身份验证。

[jackli@git-client ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jackli/.ssh/id_rsa):
Created directory '/home/jackli/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/jackli/.ssh/id_rsa.
Your public key has been saved in /home/jackli/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:qJKo3QumkS/Rz/LOqR3gCEOdYH9lLaeGgS1B/QkqrkE jackli@git-client.on-itroad.com
The key's randomart image is:
+---[RSA 2048]----+
| o.o=  o.        |
|. +o.=o. o       |
| . +o.= =        |
|.E ... *         |
|=.o   o S        |
|+B.o .           |
|*o*oo            |
|+*.*oo           |
|o.+=O.           |
+----[SHA256]-----+
[jackli@git-client ~]$ ssh-copy-id git@git-server.on-itroad.com
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/jackli/.ssh/id_rsa.pub"
The authenticity of host 'git-server.on-itroad.com (192.168.1.129)' can't be established.
ECDSA key fingerprint is SHA256:PhsrMh10ZgS3G8P/upEd5bIbjTbUW0Asbbgtsq9y3Xs.
ECDSA key fingerprint is MD5:24:af:0c:3a:33:39:2b:2a:d5:3d:64:05:a2:b6:a1:b8.
Are you sure you want to continue connecting (yes/no)? yes
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
git@git-server.on-itroad.com's password:
Number of key(s) added: 1
Now try logging into the machine, with:   "ssh 'git@git-server.on-itroad.com'"
and check to make sure that only the key(s) you wanted were added.
[jackli@git-client ~]$ ssh git@git-server.on-itroad.com
Last login: Sun Dec  9 00:22:46 2018 from git-server.on-itroad.com
[git@git-server ~]$

为 jackli 用户设置以下 git 变量。

[jackli@git-client ~]$ git config --global user.name "jackli"
[jackli@git-client ~]$ git config --global user.email "jackli@git-client.on-itroad.com"

创建一个用于保存本地 git 存储库的目录。

[jackli@git-client ~]$ mkdir ~/repo
[jackli@git-client ~]$ cd ~/repo

创建 project1 git 存储库的克隆。

[jackli@git-client repo]$ git clone git@git-server.on-itroad.com:~/repo/project1 project1
Cloning into 'project1'...
warning: You appear to have cloned an empty repository.
[jackli@git-client repo]$ ls
project1
[jackli@git-client repo]$ cd project1
[jackli@git-client project1]$ ls
[jackli@git-client project1]$

我们在本地机器上创建了 project1 存储库的克隆。
我们可以看到当前存储库中没有任何文件。
让我们其中创建一些文件。

[jackli@git-client project1]$ echo "my first file" > file1.txt
[jackli@git-client project1]$ cp /etc/hosts .
[jackli@git-client project1]$ ls
file1.txt  hosts

将这两个文件添加到我们的 git 存储库中。

[jackli@git-client project1]$ git add .
[jackli@git-client project1]$ git commit -am "My First Commit"
[master (root-commit) 10394a7] My First Commit
 2 files changed, 4 insertions(+)
 create mode 100644 file1.txt
 create mode 100644 hosts

将这些更改推送到 git-server.on-itroad.com 上的远程 git 存储库。

[jackli@git-client project1]$ git push oroirn master
Counting objects: 4, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 362 bytes | 0 bytes/s, done.
Total 4 (delta 0), reused 0 (delta 0)
To git@git-server.on-itroad.com:~/repo/project1
 * [new branch]      master -> master

要验证更改,请通过 ssh 连接到 git-server.on-itroad.com 并检查日志。

[git@git-server project1]$ git log
commit 10394a774797bc5c5313b9aae086aa1ab71c69b5
Author: jackli 
Date:   Sun Dec 9 01:04:16 2018 -0500
    My First Commit

我们已经在 Red Hat Enterprise Linux (RHEL) 7.6 环境中成功配置了我们的 git 服务器和客户端。

安装 git 服务器

git rpm 在 RHEL/CentOS ISO 中提供,因此我们可以轻松地从本地 yum 存储库安装 git。

使用 ssh 连接到 git-server.on-itroad.com,并使用 yum 命令安装 git。

[root@git-server ~]# yum install -y git
[root@git-server ~]#

我们需要一个用户来拥有我们的 git 存储库。
因此,我们添加git用户并设置密码如下:

[root@git-server ~]# useradd git
[root@git-server ~]# passwd git
Changing password for user git.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
在 RHEL/CentOS 7 上配置本地 Git 服务器和客户端

git 是一个著名的版本控制系统。
git 用于跟踪计算机文件的更改并协调多人对这些文件的工作。
git 主要用于软件开发团队的源代码管理,但是,它可用于跟踪任何文件集的更改。

在本文中,我们将配置一个本地 git 服务器,然后我们将为我们的项目创建我们的第一个 git 存储库,最后从远程客户端访问它。

欢迎 on it road

创建第一个 git 存储库

现在,使用 git 用户登录并创建一个本地 git 存储库。

[root@git-server ~]# su - git
[git@git-server ~]$ mkdir ~/repo
[git@git-server ~]$ cd ~/repo
[git@git-server repo]$ git init --bare --shared project1
Initialized empty shared Git repository in /home/git/repo/project1/

在这里,我们创建了一个目录 repo,将我们所有项目的存储库放在一个地方。
然后,我们为我们的 project1 项目创建了一个裸存储库。

注意:裸仓库没有工作区,因此无法在本地添加文件。
而共享存储库用于允许项目成员将更改推送到 git 服务器。

通过复制示例文件来启用更新后挂钩,如下所示:

[git@git-server repo]$ cd ~/repo/project1/hooks/
[git@git-server hooks]$ cp post-update.sample post-update

git 通过 ssh 服务访问远程存储库,因此,不需要明确的 Linux 防火墙配置。

我们的 git 服务器已经成功配置,我们已经为我们的第一个 git 项目创建了一个空的存储库。

日期:2020-09-17 00:10:41 来源:oir作者:oir