CIT分布式版本控制系统

一、GIT概述

在Linux虚拟机中配置DNS主从(Master-Slave)服务,通常涉及到BIND(Berkeley Internet Name Domain)软件的安装、主服务器(Master)的配置以及从服务器(Slave)的配置。以下是详细的配置步骤及命令:

在Linux环境中搭建DNS主从(Master-Slave)服务器的意义主要体现在以下几个方面:

GIT是一个广泛使用的分布式版本控制系统(Distributed Version Control System, DVCS),由林纳斯·托瓦兹(Linus Torvalds)于2005年创建,最初是为了辅助Linux内核的开发。与集中式版本控制系统(如Subversion)不同,GIT的设计允许每个开发者在自己的本地机器上维护一个完整的代码库历史记录,而不仅仅是代码的一个最新版本或一组差异。

二、主要特点

分布式:

每个开发者的机器上都有一份完整的代码库,包括历史记录。这意味着开发者可以在任何时候、任何地点进行工作,即使网络中断也不会影响他们的开发流程。

无需依赖中央服务器进行日常开发活动,如代码提交(commit)、分支(branch)创建和切换等。

高效:

GIT使用快照而非差异文件来存储每次提交,这使得数据压缩率高,且易于处理大量数据。

支持快速的分支和合并操作,因为它们只是在本地文件系统上创建新的目录或文件链接。

数据完整性:

使用SHA-1哈希算法来确保数据的完整性。每个提交、文件或目录都通过哈希值唯一标识,任何更改都会生成新的哈希值。

提供了强大的数据恢复机制,即使在数据损坏的情况下也能恢复大部分内容。

灵活性:

支持非线性开发,允许多个分支同时工作,非常适合复杂项目的协作开发。

提供了多种方式来合并分支,包括合并(merge)、变基(rebase)和cherry-pick等。

开源:

GIT是开源的,由世界各地的开发者共同维护和改进。

拥有一个庞大的社区和丰富的文档资源,便于学习和使用。

三、使用场景

GIT因其强大的功能和灵活性,被广泛应用于各种软件开发项目中,无论是个人项目还是大型团队协作。它不仅用于代码管理,还可以用于配置文件、文档和其他类型文件的版本控制。

学习GIT

学习GIT可以通过阅读官方文档、观看在线教程、参与社区讨论等多种方式进行。由于GIT的功能非常丰富,初学者可能会感到有些复杂,但一旦掌握了基本概念和常用命令,就会发现它的强大和便利。

四、集中式与分布式的区别

、1、集中式概述

集中式版本控制系统(例如SVN)将代码库存储在一台中央服务器上,团队

成员通过客户端从中央服务器获取代码并将更改提交到服务器。这意味着代

码库是集中的,所有开发者都在同一个代码库上工作,并且必须与服务器进

行通信才能查看历史记录和获取代码。因此,如果服务器发生故障或网络中

断,会导致数据丢失,并且开发者将无法使用代码库。

2、分布式概述

分布式版本控制系统(例如Git)则将完整的代码库复制到每个开发者的本

地计算机上,每个开发者都有自己的完整副本,可以在没有网络连接的情况

下继续工作。开发者可以在本地进行代码的修改和提交,然后将更改推送到

其他开发者的本地副本中。因此,代码库是分散的,每个开发者都有自己的

代码库和历史记录,可以独立工作并在不同的分支上开发代码。

像集中式都有一个主版本号,所有的版本迭代都以这个版本号为主,而分布

式因为每个客户端都是服务器,git 没有固定的版本号,但是有一个由哈希

算法算出的 id,用来回滚用的,同时也有一个 master 仓库,这个仓库是一

切分支仓库的主仓库,我们可以推送提交到 master 并合并到主仓库上,主

仓库的版本号会迭代一次,我们客户端上的 git 版本号无论迭代多少次,都

跟 master 无关,只有合并时 master 才会迭代一次。

3、整体区别

版本控制系统的集中式和分布式主要在以下三个方面存在区别:

  1. 代码库的角色与功能:在集中式版本控制系统中,只有中央服务器上的

代码库扮演中央仓库的角色,可以提供历史版本对比和代码回退等操

作。而在分布式版本控制系统中,每个代码库都可以扮演中央仓库的角

色,都提供中央仓库的功能。

  1. 协同开发与代码同步:在集中式版本控制系统中,如果中央仓库发生故

障,那么协同开发就无法进行,各个用户也无法更新最新代码。而在分

布式版本控制系统中,即使本地断网,也可以提交(待联网后

push),可以对比历史版本差异(本地有历史库)。

  1. 节点的角色与功能:分布式版本控制的每个节点都是完整仓库(都可以

扮演中央仓库),而集中式版本控制的每个节点只是保存了仓库的某个

版本(无法扮演中央仓库)。

综上所述,版本控制系统的集中式和分布式各有其特点。选择何种方式主要

取决于团队的特定需求和工作流程。

六、集中式和分布式的优缺点

1、分布式

(1)优点

  1. 灵活性:由于每个节点都有完整的代码库,因此可以更轻松地进行并行

工作,不同的开发人员可以在不同的分支上独立工作,提高工作效率。

  1. 可扩展性:由于每个节点都有完整的代码库,因此可以更容易地扩展系

统以适应更大的开发团队或项目需求。

  1. 独立性:每个节点都可以独立工作,不需要依赖于中央服务器或其他节

点,提高了系统的可用性和稳定性。

(2)缺点

  1. 安全性:由于每个节点都有完整的代码库,如果某个节点被攻击或出现

故障,可能会造成源代码泄露,影响到整个系统的安全性。

  1. 数据一致性:由于每个节点都有自己的代码库和历史记录,因此在合并

不同节点的更改时可能会出现数据一致性问题。

  1. 管理难度:由于分布式系统的复杂性,管理起来相对困难,需要更多的

技术知识和经验。

2、集中式

(1)优点

  1. 简单易用:集中式版本控制系统通常具有简单明了的设计,易于理解和

实施。由于所有的决策和处理都由中心节点完成,客户端设备只需执行

简单的操作即可得到所需的服务。

  1. 数据安全性:由于所有数据都存储在中央服务器上,因此可以更好地保

护数据的完整性和安全性。

  1. 管理方便:集中式版本控制系统通常具有集中的管理和控制能力,可以

更/容易地进行系统维护和管理。

(2)缺点

  1. 单点故障:由于整个系统依赖于中心节点,一旦中心节点出现故障或不

可用,整个系统将无法正常运行。这导致系统的可靠性受到了限制,并

增加了系统的风险。

  1. 性能瓶颈:在集中式版本控制系统中,所有的数据处理和决策都需要通

过中心节点进行。当系统负载增大时,中心节点可能成为性能瓶颈,限

制了整个系统的处理能力。

  1. 可扩展性有限:由于所有的处理都由中心节点完成,集中式版本控制系

统的可扩展性受到限制。当系统需要扩展以满足更大规模的需求时,需

要升级和改变中心节点,导致系统的扩展性有限。

五、Git的安装及配置

1.Git安装
[root@YH1 ~]# yum -y install git

......省略部分内容......

已安装:

git-2.39.3-1.el8_8.x86_64 git-coredoc-2.39.3-1.el8_8.noarch

perl-Error-1:0.17025-2.el8.noarch perl-Git-

2.39.3-1.el8_8.noarch

perl-TermReadKey-2.37-7.el8.x86_64

完毕!

[root@YH1 ~]# git # 直接输入git可通过提示查看到git的选项和

参数

用法:git [-v | --version] [-h | --help] [-C <path>] [-c

<name>=<value>]

[--exec-path[=<path>]] [--html-path] [--manpath] [--info-path]

[-p | --paginate | -P | --no-pager] [--noreplace-objects] [--bare]

[--git-dir=<path>] [--work-tree=<path>] [--

namespace=<name>]

[--super-prefix=<path>] [--config-env=<name>=

<envvar>]

<command> [<args>]

这些是各种场合常见的 Git 命令:

开始一个工作区(参见:git help tutorial)

clone 克隆仓库到一个新目录

init 创建一个空的 Git 仓库或重新初始化一个已存在的仓库

在当前变更上工作(参见:git help everyday)

add 添加文件内容至索引

mv 移动或重命名一个文件、目录或符号链接

restore 恢复工作区文件

rm 从工作区和索引中删除文件

检查历史和状态(参见:git help revisions)

bisect 通过二分查找定位引入 bug 的提交

diff 显示提交之间、提交和工作区之间等的差异

grep 输出和模式匹配的行

log 显示提交日志

show 显示各种类型的对象

status 显示工作区状态

扩展、标记和调校您的历史记录

branch 列出、创建或删除分支

commit 记录变更到仓库

merge 合并两个或更多开发历史

rebase 在另一个分支上重新应用提交

reset 重置当前 HEAD 到指定状态

switch 切换分支

tag 创建、列出、删除或校验一个 GPG 签名的标签对象

协同(参见:git help workflows)

fetch 从另外一个仓库下载对象和引用

pull 获取并整合另外的仓库或一个本地分支

push 更新远程引用和相关的对象

命令 'git help -a' 和 'git help -g' 显示可用的子命令和一些概念帮

助。

查看 'git help <命令>' 或 'git help <概念>' 以获取给定子命令或概

念的

2、配置 git 环境

参数:

config:配置 git 环境

--global:长命令表示配置整个 git 环境

八、Git 的基本流程

  1. 在工作目录 (工作区) 中修改某些文件

  2. 对已修改文件作快照,并保存到暂存区域 git add .

  3. 将保存在暂存区的文件快照提交到版本库 git commit -m ""

  4. 查看提交历史 git log

1、创建本地空仓库

init:初始化当前目录为仓库,初始化后会自动将当前仓库设置为 master

创建本地仓库的条件是需要一个空目录,然后在空目录中初始化你的项目

(1)创建一个名为 test 的空项目

帮助。

有关系统的概述,查看 'git help git'。

[root@YH1 ~]# git config --global user.name "admin" #

配置用户名

[root@YH1 ~]# git config --global user.email

"yh123456@qq.com" # 配置邮箱

[root@YH1 ~]# mkdir /test # 创建一个空目录

[root@YH1 ~]# cd /test/

[root@YH1 test]# git init # 将当前空目录做为master仓库

提示:使用 'master' 作为初始分支的名称。这个默认分支名称可能会更改。

要在新仓库中

提示:配置使用初始分支名,并消除这条警告,请执行:

提示:

提示: git config --global init.defaultBranch <名称>

2、新建文件添加到本地仓库

add:将文件添加到缓存区

commit:提交到本地仓库

(1)新建文件并添加到缓存

(2)提交文件到仓库

使用-m命令来简写描述我们的信息,如果不使用-m,会调用终端的注释编

辑器来输入描述信息,而不建议使用注释编辑器,因为注释编辑器比较难

用,不舒服。

提示:

提示:除了 'master' 之外,通常选定的名字有 'main'、'trunk' 和

'development'。

提示:可以通过以下命令重命名刚创建的分支:

提示:

提示: git branch -m <name>

已初始化空的 Git 仓库于 /test/.git/

[root@YH1 test]# ls -a # 查看git隐藏的相关的配置文件

. .. .git

[root@YH1 test]# cd .git/

[root@YH1 .git]# ls

branches config description HEAD hooks info objects

refs

[root@YH1 test]# touch test.c

[root@YH1 test]# ls -a

. .. .git test.c

[root@YH1 test]# git add test.c

[root@YH1 test]# git commit -m "add new file "test.c""

[master(根提交) 9e89cac] add new file test.c

1 file changed, 0 insertions(+), 0 deletions(-)

create mode 100644 test.c

git commit 会为我们生成40位的哈希值,用于作为 id,并把刚刚用 git add

添加到提交缓存区里的文件提交到本地仓库中,便于我们回滚,至此,这个

文件就已经添加到本地仓库中了,同时本地仓库也迭代了一个版本。

3、查看历史提交信息

九、专业术语

十、工作目录、暂存区和版本库

  1. 工作目录:指当前正在进行修改的文件夹或目录。在这个目录中,开发

者可以添加、修改、删除文件,然后将这些修改提交到Git中。

  1. 暂存区:一个中间区域,它位于工作目录和版本库之间。在这里,开发

者可以将修改后的文件添加到暂存区,以便在提交时将这些修改打包成

一个提交 (也称为"提交"或"提交记录")。

[root@YH1 test]# git log

commit 9e89cace2f47e12178fc54f964d01b176b25c968 (HEAD ->

master) # 40位的哈希算法算出的id

head->master表示提交到master主仓库,如果是head->其他分支,表示提

交到其他分支仓库

Author: admin <yh123456@qq.com> # 提交者

Date: Wed Nov 15 21:00:07 2023 +0800 # 提交时间

add new file test.c # 提交时写的注释

六、专业术语

七、工作目录、暂存区和版本库

  1. 工作目录:指当前正在进行修改的文件夹或目录。在这个目录中,开发

者可以添加、修改、删除文件,然后将这些修改提交到Git中。

  1. 暂存区:一个中间区域,它位于工作目录和版本库之间。在这里,开发

者可以将修改后的文件添加到暂存区,以便在提交时将这些修改打包成

一个提交 (也称为"提交"或"提交记录")。

[root@YH1 test]# git log

commit 9e89cace2f47e12178fc54f964d01b176b25c968 (HEAD ->

master) # 40位的哈希算法算出的id

head->master表示提交到master主仓库,如果是head->其他分支,表示提

交到其他分支仓库

Author: admin <yh123456@qq.com> # 提交者

Date: Wed Nov 15 21:00:07 2023 +0800 # 提交时间

add new file test.c # 提交时写的注释

  1. 版本库:存储所有提交历史记录的地方。每个提交都包含一个快照 (即

项目的状态),以及一个指向上一个提交的引用。开发者可以从版本库中

检出历史记录中的任何一个版本,并在工作目录中查看它的状态。

在进行Git操作时,开发者通常会先将修改添加到暂存区,然后使用"git

commit"命令将这些修改提交到版本库中。提交后,暂存区中的修改会被清

空,工作目录中的文件会与版本库中的文件保持一致。这个过程可以帮助开

发者更好地管理代码的变化,使得代码的版本控制更加清晰和可控。

gitlab以及分支管理

一、分支概念

每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止

到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。

HEAD 严格来说不是指向提交,而是指向master,而 master才是指向提交

的,所以,HEAD指向的就是当前分支。

开始的时候,master分支是一条线,Git 用 master 指向最新的提交,再用

HEAD指向 master,就能确定当前分支,以及当前分支的提交点。每次提

交,master分支都会向前移动一步,这样,随着你不断提交,master分支

的线也越来越长。

二、创建分支过程

  1. 首先,确保你当前在主分支(通常是master或main分支)上工作。你

可以使用以下命令切换到主分支:

  1. 接下来,使用以下命令创建一个新的分支:

这将创建一个名为"feature-branch"的新分支。

  1. 现在,你需要切换到新创建的分支上。使用以下命令切换分支:

[root@YH1 ~]# cd /test # 先切换到之前创建master主分支

[root@YH1 ~]# git checkout master # 确保当前操作位置是在主分

支上

[root@YH1 ~]# git branch feature-branch

[root@YH1 ~]# git checkout feature-branch

[root@YH1 test]# git branch # 查看当前分支

* feature-branch # 当前所在哪个分支,哪个分支前面有*号

master

也可以使用如下命令直接创建并切换到"feature-branch"分支,-b 选项相当

于执行两条命令,git checkout 和 git branch。

[root@YH1 ~]# git checkout -b feature-branch

[root@YH1 test]# git branch # 跟上面的操作效果一样

* feature-branch

master

这两个操作都将切换到新创建的"feature-branch"分支。

  1. 在新分支上进行编写,提交更改。你可以使用以下命令添加更改并将更

改提交到本地仓库:

[root@YH1 test]# vim test.c # 添加新内容

hello

test

[root@YH1 ~]# git add . # 提交到缓存区,这里也可以写

master分支的目录名,比如test

[root@YH1 ~]# git commit -m "提交消息" # 提交消息写清注释

信息即可

  1. 当代码任务完成后,需要将更改合并回主分支。首先,切换回主分支:

[root@YH1 ~]# git checkout master

[root@YH1 test]# git branch

feature-branch

* master

[root@YH1 test]# cat test.c

刚才写入的内容没有了,是因为之前是在其他分支上操作的,并非在master

所以切换回master后,显示的内容只会是master分支上的内容

  1. 然后,使用以下命令将你的分支合并到主分支:

这将把你的"feature-branch"分支的更改合并到主分支上。如果存在冲突,

需要手动解决冲突。Git会在冲突的文件中标记出冲突的部分,你需要打开

这些文件并手动编辑以解决冲突。解决冲突后,你需要再次提交更改。

  1. 最后,如果你想删除不再需要的分支,可以使用以下命令删除分支:

这将删除名为"feature-branch"的分支。如果你想强制删除分支(即使该分

支尚未合并),可以使用以下命令:

三、解决分支冲突

[root@YH1 ~]# git merge feature-branch

[root@YH1 test]# cat test.c # 合并完成,其他分支的内容被合并

到了master上

hello

test

[root@YH1 ~]# git branch -d feature-branch

[root@YH1 ~]# git branch -D feature-branch

[root@YH1 test]# git checkout -b y123 # 创建并切换到新

分支

切换到一个新分支 'y123'

[root@YH1 test]# vim test.c # 写入点内容

hello

test

yyyy

[root@YH1 test]# git add test.c # 将新分支写入的内容提交到

缓存

[root@YH1 test]# git commit -m "yy" # 提交新分支并注释

为"yy"

[y123 32e5a5a] yy

1 file changed, 1 insertion(+)

[root@YH1 test]# git checkout master # 切换到主分支

切换到分支 'master'

[root@YH1 test]# cat test.c # 此时还未合并,所以只显示当前

master分支的内容

hello

test

[root@YH1 test]# vim test.c # 向master分支内写入些内容

hello

test

hhhh

[root@YH1 test]# git add test.c # 提交master分支

[root@YH1 test]# git commit -m "hh" # 正式提交,注释信息

为"hh"

[master 4a51362] hh

1 file changed, 1 insertion(+)

[root@YH1 test]# git merge y123 # 合并新分支

自动合并 test.c

冲突(内容):合并冲突于 test.c # 提示冲突了

自动合并失败,修正冲突然后提交修正的结果。

[root@YH1 test]# git status # git状态信息也提示两个分支冲突

位于分支 master

您有尚未合并的路径。

(解决冲突并运行 "git commit")

(使用 "git merge --abort" 终止合并)

未合并的路径:

(使用 "git add <文件>..." 标记解决方案)

双方修改: test.c

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")

[root@YH1 test]# cat test.c # git使用记号帮我们标记除

了冲突位置和新分支的内容

hello

test

<<<<<<< HEAD

hhhh

=======

yyyy

>>>>>>> y123

1.git仓库的建立

1.找到一个空目录 mkdir /test

2.进入到这个目录 cd /test

3.执行git指令 git init

4.发现一个隐藏目录 .git

5.test目录就是工作区域,.git就是仓库

[root@YH1 test]# vim test.c # 手动修改冲突文件

hello

test

hhhh

yyyy

[root@YH1 test]# git add test.c # 提交修改后的分支

[root@YH1 test]# git commit -m "zuizhong" # 正式提交,

注释信息为"zuizhong"

[master f13e70e] zuizhong

[root@YH1 test]# git log --graph --pretty=oneline --

abbrev-commit # 查看日志分析分支合并情况

* f13e70e (HEAD -> master) zuizhong # 当前分支所处位

置为zuizhong

|\

| * 32e5a5a (y123) yy # y123分支冲突时所处的分支位置为yy

* | 4a51362 hh # master分支冲突时所处的分支位置为hh

|/

* 173a360 test

* 9e89cac add new file test.c

[root@YH1 test]# git branch -d y123 # 删除y123分支

已删除分支 y123(曾为 32e5a5a)。

[root@YH1 test]# cat test.c # 查看master分支上的最终版

hello

test

hhhh

yyyy

2.常用的指令

1.在test目录中修改文件

2.git add .|文件名 将修改的文件提交的暂存区域

3.git commit -m "说明" 将暂存区的数据保存到仓库

4.git log 查看提交日志

3.分支

1.让一个项目有多重可能性

2.分支的创建,删除合并

1.查看分支 git branch 有几行,就有几个分支,*标注当前所在

的分支

2.切换分支的指令 git checkout 分支名

3.新增分支

git branch 新分支名

在跳转分支的时候创建 git checkout -b 新分支名

  1. 删除分支,要求是分支已经合并

  2. git branch -d 分支名

  3. git branch -D 分支名

4.分支冲突

将两个分支合并

git checkout abranch

git merge bbranch 在a分支合并b分支

a分支和b分支都对同一个文件进行了修改,并且commit,

合并的时候,就是保分支冲突,需要手动选择

再提交就可以了

四、Git 拉取

再启动一台主机,YH2

[root@YH2 ~]# ssh-keygen

[root@YH2 ~]# ssh-copy-id root@192.168.33.11

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

[root@YH2 ~]# mkdir /yh2 # 新建git仓库

[root@YH2 ~]# cd /yh2/

[root@YH2 yh2]# git init # 仓库初始化,当前目录作为

master

提示:使用 'master' 作为初始分支的名称。这个默认分支名称可能会更改。

要在新仓库中

提示:配置使用初始分支名,并消除这条警告,请执行:

提示:

提示: git config --global init.defaultBranch <名称>

提示:

提示:除了 'master' 之外,通常选定的名字有 'main'、'trunk' 和

'development'。

提示:可以通过以下命令重命名刚创建的分支:

提示:

提示: git branch -m <name>

已初始化空的 Git 仓库于 /yh2/.git/

[root@YH2 yh2]# git clone 192.168.33.11:/test/.git #

将YH1的test分支克隆到本机

正克隆到 'test'...

remote: 枚举对象中: 15, 完成.

remote: 对象计数中: 100% (15/15), 完成.

remote: 压缩对象中: 100% (5/5), 完成.

remote: 总共 15(差异 0),复用 0(差异 0),包复用 0

接收对象中: 100% (15/15), 完成.

[root@YH2 yh2]# ls

test

[root@YH2 yh2]# ls test/

test.c

系统 IP 地址 主机

所需软件

Rokcy8.7 192.168.33.11 YH1

gitlab-ce-12.10.14-

ce.0.el8.x86_64git-2.39.3-

1.el8_8.x86_64

Rocky8.7 192.168.33.22 YH2 git-2.39.3-1.el8_8.x86_64

0000 在码云上创建项目并且pull和push

五、部署 Gitlab 服务器

1、搭建环境

2、安装 gitlab

[root@YH1 ~]# yum -y install git # 安装git

[root@YH1 ~]# yum -y install curl openssh-server postfix

cronie policycoreutils-python # 安装依赖环境

AppStream 2.0 MB/s | 4.3 kB 00:00

BaseOS 2.0 MB/s | 3.9 kB

00:00

软件包 curl-7.61.1-25.el8.x86_64 已安装。

软件包 openssh-server-8.0p1-16.el8.x86_64 已安装。

软件包 cronie-1.5.2-8.el8.x86_64 已安装。

未找到匹配的参数: policycoreutils-python

错误:没有任何匹配: policycoreutils-python

3、加载配置并启动 gitlab

[root@YH1 ~]# wget --content-disposition

https://packages.gitlab.com/gitlab/gitlabce/packages/el/8/gitlab-ce-12.10.14-

ce.0.el8.x86_64.rpm/download.rpm # 下载gitlab软件包

......等待下载完成......

[root@YH1 ~]# ls

公共 图片 音乐 gitlab-ce-12.10.14-

ce.0.el8.x86_64.rpm mysql.sh

模板 文档 桌面 initial-setup-ks.cfg

replication_mysql.yml

视频 下载 anaconda-ks.cfg ip.sh

[root@YH1 ~]# rpm -ivh gitlab-ce-12.10.14-

ce.0.el8.x86_64.rpm

[root@YH1 ~]# rpm -q gitlab-ce

gitlab-ce-12.10.14-ce.0.el8.x86_64

[root@YH2 ~]# yum -y install git # YH2安装git

[root@YH1 ~]# gitlab-ctl reconfigure

...省略部分内容

Running handlers:

Running handlers complete

Chef Client finished, 543/1465 resources updated in 02

minutes 52 secondsgitlab Reconfigured!

[root@YH1 ~]# lsof -i :80

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE

NAME

nginx 1726 root 7u IPv4 36866 0t0 TCP

*:http (LISTEN)

nginx 1800 gitlab-www 7u IPv4 36866 0t0 TCP

*:http (LISTEN)

nginx 1801 gitlab-www 7u IPv4 36866 0t0 TCP

*:http (LISTEN)

4、浏览器访问 gitlab

当前网站:http://192.168.33.11

首次登录只设置密码即可,用户名为 root

5、翻译页面并登录用户

推荐使用 Edge 自带浏览器,可以直接翻译网页

右键点击页面空白处,弹出菜单,点击"翻译为中文


使用 root 用户登录,密码为首次访问页面时设置的密码

6、创建项目

点击创建项目


创建一个任意项目,按照图示操作即可

7、新建主分支

跳转到新页面后,点图中所示的灰色加号,再点新建文件


写清文件名,写好内容,点下面的提交更改

8、新建其他分支

点击左侧列表的分支,即可看到刚才新建的分支文件,再点击新分支,来创

建其他分支

输入标题


写点内容,再点下方的提交更改

点击 解决 WIP 状态

点击合并

9、客户端克隆分支

使用 YH2 克隆 YH1 建立好的分支

https://blog.csdn.net/qq_31237581/article/details/102639749

[root@YH2 ~]# git clone http://192.168.33.11/root/test.git

正克隆到 'test'...

remote: Enumerating objects: 10, done.

remote: Counting objects: 100% (10/10), done.

remote: Compressing objects: 100% (6/6), done.

remote: Total 10 (delta 2), reused 0 (delta 0), packreused 0

接收对象中: 100% (10/10), 完成.

处理 delta 中: 100% (2/2), 完成.

[root@YH2 ~]# ls

123 公共 视频 文档 音乐 anaconda-ks.cfg initialsetup-ks.cfg nginx-1.22.1.tar.gz

123.txt 模板 图片 下载 桌面 hostname.sh ip.sh

test

[root@YH2 ~]# cd test/

[root@YH2 test]# ls

123456 666 README.md

[root@YH2 test]# cat 666

yunjisuan

[root@YH2 test]# cat 123456

I am yourfather

相关推荐
字节程序员1 小时前
Jmeter分布式压力测试
分布式·jmeter·压力测试
ProtonBase1 小时前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
时时刻刻看着自己的心1 小时前
clickhouse分布式表插入数据不用带ON CLUSTER
分布式·clickhouse
Data跳动10 小时前
Spark内存都消耗在哪里了?
大数据·分布式·spark
Java程序之猿12 小时前
微服务分布式(一、项目初始化)
分布式·微服务·架构
来一杯龙舌兰12 小时前
【RabbitMQ】RabbitMQ保证消息不丢失的N种策略的思想总结
分布式·rabbitmq·ruby·持久化·ack·消息确认
节点。csn14 小时前
Hadoop yarn安装
大数据·hadoop·分布式
NiNg_1_23415 小时前
基于Hadoop的数据清洗
大数据·hadoop·分布式
隔着天花板看星星16 小时前
Spark-Streaming集成Kafka
大数据·分布式·中间件·spark·kafka
技术路上的苦行僧21 小时前
分布式专题(8)之MongoDB存储原理&多文档事务详解
数据库·分布式·mongodb