原创

    Git 入门教程

    第一章:Git 初识

    一、Git 历史

    同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。到 2005 年的时候,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds )不得不吸取教训,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。他们对新的系统订了若干目标:

    若干目标:
    • 速度 • 简单的设计 • 对非线性开发模式的强力支持(允许上千个并行开发的分支) • 完全分布式 • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

    二、Git 与 svn 对比

    1、SVN 介绍

    SVN集中式版本控制系统 ,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器那里得到最新的版本,然后干活。干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就郁闷了。下图就是标准的集中式版本控制工具管理方式:

    集中管理方式优缺点:

    优点: 开发人员在一定程度上看到其他开发人员在干什么,而管理员也可以很轻松掌握每个人的开发权限
    缺点: 1、服务器单点故障问题。2、容错性差

    2、Git 介绍

    Git 是一款开源、免费、分布式版本控制系统 ,其官网是 https://git-scm.com/ 。那么它是没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了 文件 A ,其他人也在电脑上改了 文件 A 。这时,你们两之间只需把各自的修改推送给对方, 就可以互相看到对方的修改了。下图就是分布式版本控制工具管理方式:

    Git 工作流程:
    1、从远程仓库中克隆 Git 资源作为本地仓库。 2、从本地仓库中 CheckOut 代码然后进行代码修改。 3、在提交前先将代码提交到暂存区。 4、提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。 5、在修改完成后,需要和团队成员共享代码时,可以将代码 push 到远程仓库。

    下图展示了 Git 的工作流程:

    三、Git 的下载安装

    访问官网: www.git-scm.com/download/ 选择 相应操作系统 下载。下载好之后,安装即可【建议: 安装的时候一直点 Next 即可,直到完成,不必去改安装目录】。安装完成之后,点击鼠标右键会出现 Git GUI HereGit Bash Here ,如下图所示:

    当我装上了 Git 之后,发现其实并不是特别好用。此时就要装一个更好操作 Git 的软件 TortoiseGit ,这是 TortoiseGit 的官网: https://tortoisegit.org/download/ ,下载安装即可。安装时注意以下两项,如下图:

    安装完成后,点击鼠标右键,就可看到新增了 三项功能 ,如下图:

    安装后发现,全部都是英文的,好像有点看不懂。没关系,汉化一下就可以了。汉化包自行搜索或者联系我。汉化完成后,点击右键,选择 TortoiseGit --> settings 就进入到了以下界面,选择即可。如下图:

    TIPS: 更详细的安装教程请参考:尚硅谷技术课程系列之Git V2.0.pdf

    完成之后,界面的所有文字就都是中文的了。接下来介绍 Git 的使用。

    第二章:Git 的使用

    一、Git 常用命令

    git --version                                 # 查看 Git 版本
    git init                                      # 初始化一个本地仓库
    git status                                    # 查看本地库状态
    
    git add xx.log                                # 将 xx.log 添加到暂存区
    git rm --cached xx.log                        # 将 xx.log 从暂存区删除
    git commit -m "log infomation" xx.log         # 将 xx.log 提交到本地库
    
    git reflog                                    # 查看历史记录
    git log                                       # 查看详细的历史记录
    git reset --hard VersionNO                    # 版本穿梭
    
    # 版本穿梭实操
    git reflog                                    # 查看历史信息,主要是查看【版本号】
    git reset --hard 73ac01b                      # 73ac01b 这个是我第二次提交的版本号
    cat xx.log                                    # 查看回退版本之后的 xx.log 的信息
    
    ssh-keygen -t rsa -C "Jack@qq.com"            # 生成密钥对
    # 参数含义:
    # -t 指定密钥类型,默认是 rsa ,可以省略
    # -C 设置注释文字,比如邮箱
    # -f 指定密钥文件存储文件名
    

    二、创建版本库

    1、什么是版本库

    版本库又名 仓库 ,英文名 repository 可以简单理解成一个目录,这个目录里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除,Git 都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。由于 Git 是分布式版本管理工具,所以 Git 在不需要联网的情况下也具有完整的版本管理能力。

    2、版本库的创建

    创建一个版本库非常简单,可以使用 Git Bash 也可以使用 TortoiseGit ,还可以使用 Git GUI ,这三种方式都可以创建一个版本库。接下来就开始介绍如何创建一个版本库。第一步: 选择一个合适的地方,创建一个空目录,如:在桌面。如下图:

    第二步: 在版本库创建好之后,在版本库目录下创建一个 本地仓库 ,如下图:

    TIPS: 到这里为止,版本库就创建好了。注意: 这里的版本库指的是本地版本库,仓库也是本地仓库

    3、各种概念介绍

    本地版本库: .git 文件夹 就叫做本地版本库
    工作目录: 包含 .git 的那个目录就叫做工作目录,如 repo_1
    工作区: 包含本地仓库的目录就是工作区。如 Repositories

    三、操作版本库

    1、向本地仓库添加文件

    第一步:repo_1 目录下添加一个文件 hello.txt ,然后使用 TortoiseGit 中的 add 加入到暂存区。此时的 hello.txt 并没有添加到本地仓库,如下图:

    第二步: 提交到本地仓库。在 repo_1 目录下空白处点击鼠标右键,选择 Git commit->master ,然后出现如下界面:

    提交成功后出现一个弹窗,选择关闭即可。此时 hello.txt 就加入到了本地版本库,效果如下图:

    第三步: 在添加完文件之后,我们查看一下本地仓库【在 repo_1 目录下 点击右键:选择 TortoiseGit-->Repo-browser 】如下图:

    2、向本地仓库修改文件

    通过上图我们发现,结果只有 hello.txt 。因为我们只添加了这一个文件,所以只有这么一个文件。现在我们修改一下这个文件里面的内容,随便修改就行。修改完之后进行第二次提交。提交参考 第二步 【Git 可以不需要添加到暂存区就可以直接提交】。提交完成之后再次修改文件内容,然后再次提交。这个时候我们就有版本了。就可以进行 第四步: 查看版本信息。那么如何来查看呢?在 repo_1 目录下 点击右键 TortoiseGit-->Show log 即可查看到各个版本。如下图:

    那我们如何知道 第二次提交第三次提交 修改了什么内容呢?别急,参考下面图解:

    3、向本地仓库删除文件

    如果我们把 hello.txt 误删了怎么办?没关系,点击右键选择: TortoiseGit-->Revert... 即可把误删了的文件给还原回来。如果 TortoiseGit 汉化了的话,那么你会看到 还原 ,而不是 Revert...这里要注意: 如果 hello.txt 文件修改了没有提交,那么此时删除了,再次还原的话,修改的内容就没了。因为还原操作是从本地仓库找到文件还原回来,所以修改的内容就没有了。还原也有下面一种操作,点击右键选择: Git Sync... ,如下图:

    如果我们想把 hello.txt 从版本库里面删除 ,但又 不想删除本地 的 hello.txt ,又该怎么办呢?这么办,如下图:

    如果我们就是想删除 hello.txt ,且本地也不保存,如何做?简单,只要本地删除 hello.txt ,然后 commit 提交一下,这样就把这个文件从本地删除了,且版本库也没有了这个文件。

    4、提交工程代码

    如何去提交我们的代码呢?以为一个工程中,有些文件夹是不需要提交到本地仓库的,例如 .diea 文件夹out 文件夹 ,那我们该如何忽略它们呢?这么干。第一步: 把整个项目添加到 暂存区 ,如下图:

    第二步: 在添加到暂存区之后,我们进入到 HelloProject ,选中需要忽略的文件或文件夹,然后右键,如下图:

    第三步: 选中忽略方式,我们选择递归忽略,如下图:

    第四步: 查看 HelloProject 工程,并查看 .gitignore 文件,如下图:

    第五步: 提交到本地仓库,并进行仓库查看,如下图:

    四、添加远程仓库

    要使用远程仓库的话,必须要有 GitHub 账号 。当然,码云账号 也行,都是同类型的产品。本教程使用 GitHub 为例(GitHub 知名度高嘛)。首先我们得注册账号并新建远程仓库,详情参考:GitHub 账号注册 新建仓库如下图:

    五、推送到远程仓库

    那我们有了远程仓库之后,我们就要把 本地仓库 推送到 远程仓库 。如何推送呢?别急,先介绍下列概念。

    Github 支持两种同步方式 HTTPSSSH 。***如果使用 HTTPS *** ,那就很简单,基本不需要配置就可以使用。但是每次提交代码和下载代码时都需要输入用户名和密码,很麻烦。如果使用 SSH 方式 ,就需要 客户端先生成一个密钥对 ,即一个公钥一个私钥。然后还需要把公钥放到 GitHub 的服务器上。接下来先看 SSH 方式。

    1、SSH 方式

    SSHSecure Shell(安全外壳协议) 的缩写,由 IETF 的网络小组(Network Working Group)所制定。SSH 是目前较可靠、专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。使用 SSH 协议通信时,推荐使用基于密钥的验证方式。你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到 SSH 服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙, 然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密 质询(challenge) 并把它发送给客户端软件。客户端软件收到 质询 之后就可以用你的私人密匙解密再把它发送给服务器。

    2、创建 SSH 密钥

    repo_1 目录下点击右键,选择 Git Bash Here ,相关操作如下图:

    以下是我的公钥,我们需要把公钥复制出来,然后去 GitHub 进行相关操作:

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuKASZWC4eMblBf0Pcqrvp9xjqLH+bOp5ogVLi01HwrCnD79bp/VtfyOpeGr3NLRgZzImHvms532c+jNbzFFoDdFGyNyis4l01eudE4wRdzcJ6cxhrMVd0l1VK7mc4hwE3jocRleiSJBE0J3hrxkPGpcHco6u2wW8majmuk2FLfvEgcOh0xKT3N9DQsecIx6cCtIJu8Krr7IdVJvNBB1v9AzNb4lwjNkLzBDJB0OOKF21a12wJo+WFhMqJkf5ktAU8TthBB51/NHTxDyOD5gBFIhVtesow0hQhZmdO84LC4b+KJIGIM+i5MlFB3GeEmjhYF2BvMmcXfzJdPC9UZx5T guoshizhan@guoshizhan
    

    复制好自己的公钥,然后去 GitHub 网站,点击自己头像 ,选择 settings ,此时进入到另一个页面,选择左侧的 SSH and GPA keys ,如下图:

    点击 add SSH key ,然后验证一下 GitHub 账户的密码,这样就添加成功了。这样做的 目的就是: 不需要输入账号密码,也可以和 GitHub 服务器进行通信,也可以保证通信的安全可靠。虽然生成密钥及配置有点麻烦,但是后面操作的时候就翻方便多了。而不是像 HTTPS 那样了,每操作一次,就输入一次账号密码,头都大了。成功添加 SSH key 如下图:

    3、推送到远程仓库

    第一种方式:命令行。repo_1 目录下点击右键,选择 Git Bash Here ,相关操作如下图:

    TIPS: origin 是个别名,代表 远程仓库 ,你也可以叫 aaa 或者其他的名字,都行,无所谓的。

    第二种方式:TortoiseGit 图形界面方式。repo_1 目录下点击右键,选择 Git Sync... ,相关操作如下图:

    接下来介绍 HTTPS 通信方式,通过此方式推送到远程仓库。

    4、HTTPS 方式

    在本地仓库新建 https.txt 文件,然后添加到本地仓库。这样做是为了区分是否推送成功。首先: 复制 HTTPS 连接,如下图:

    接着:repo_1 目录下点击右键,选择 Git Sync... ,相关操作如下图:

    六、克隆远程仓库到本地

    第一种方式:命令行。repo_1 目录下点击右键,选择 Git Bash Here ,相关操作如下图:

    TIPS: 克隆下来的代码和远程仓库是一模一样的,提交次数、修改信息等等都可以查看。

    第二种方式:TortoiseGit 图形界面方式。Repositories 目录下新建 test 文件夹 ,然后进入文件夹,点击鼠标右键,选择 Git clone ,***【提前复制好远程仓库 HTTPS 连接或者 SSH 连接】*** 如下图:

    七、推送修改文件和拉取最新文件

    推送修改文件

    如果我们在本地仓库新建了一个 XYZ.txt 文件,并把这个文件添加到本地版本库,即本地仓库。那么远程仓库是没有这个文件的,我们应该把我们的修改提交到远程仓库,如何做?这里就用文字描述了,就不上图片了。步骤: 点击右键 --> Git Sync... --> push ,等待推送完成即可。完成之后去远程仓库查看,就发现多了 XYZ.txt 文件。这里要注意:推送的时候要选择对应的远程仓库,别推送错了。其次,建议使用 SSH 方式,使用 HTTPS 方式输账号密码好烦,软件好像没有记忆功能,我太难了。最后说一下,以为我是用的是英文版的 TortoiseGit ,所以都是 Git Sync...push 等等之类的,他们对应的中文是 同步推送,只要看的懂就行了,不行就查一下嘛,问题不大。

    拉取最新文件

    加入别人推送了最新的代码,我们应该如何把它拉取到本地呢?仍然是文字教程,就不上图了。在你的本地仓库下点击右键,Git Sync... ,然后选择左侧的 pull 。 注意:远程仓库地址要选好,别拉取错了。拉取完成之后,本地仓库就是最新的了。

    冲突问题

    冲突问题的产生: A 程序员修改了 aa.txt 文件,并推送到了远程仓库。然而,在 A 程序员推送到远程仓库之前,B 程序员也修改了 aa.txt 文件,B 程序员修改完之后,A 程序员已经把代码推送到了远程仓库。但是,此时的 B 程序员也想推送到远程仓库,但是发现报错了,推送不了了。B 程序员想拉取远程仓库代码,拉取也不行了。这就是冲突。冲突产生的原因: 同时修改同一个文件,然后推送后导致本地仓库和远程仓库不一致。解决办法:手动解决,只能自己去决定采用 A 程序员修改的还是 B 程序员修改的。

    此处都是文字描述,不好参照。限于时间的关系,只能这样了,有时间的话,我会重新给这一部分加上图片描述。

    第三章:搭建私有 Git 服务器

    远程仓库实际上和本地仓库没啥不同,纯粹为了 7x24 小时开机并交换大家的修改。GitHub 就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给 GitHub 交保护费,那就只能自己搭建一台 Git 服务器作为私有仓库使用。

    需要的工具:

    1、一台 Linux 虚拟主机或者云主机 2、远程连接工具(云主机需要,虚拟机可用可不用) 推荐:SecureCRT

    一、搭建步骤

    第一步: 安装 C 语言环境:

    yum -y install curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel gcc cc
    

    第二步: 发送 git 压缩包到服务器,git-2.5.0 压缩包下载 步骤如下图:

    获取压缩包路径 开启 ftp 连接 发送成功 传输之后的位置

    接下来的内容我就不再写了,直接给个压缩包,里面 软件和文字版教程 都有,点击右侧下载即可。 git 所有资料

    二、其他细节

    
    # 暂时先放一放……
    
    

    第四章:Git 的分支操作

    一、什么是分支

    在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)

    二、分支的好处

    三、分支的操作

    git branch -v                   # 查看分支
    git branch hot-fix              # 创建分支:创建 hot-fix 分支
    git branch -v                   # 再次查看分支
    git checkout hot-fix            # 切换分支:切换到 hot-fix 分支
    git checkout master             # 切换回 master 分支
    git merge hot-fix               # 把指定的分支合并到当前分支上,即把 hot-fix 分支合并到 master 分支上
    

    四、解决冲突问题

    # 冲突产生的原因:
    合并分支时,两个分支在【同一个文件的同一个位置】有两套完全不同的修改。
    Git 无法替我们决定使用哪一个,必须人为决定新代码内容。
    
    # 冲突命令示例如下:
    git checkout hot-fix               # 切换到 hot-fix 分支
    vim xx.log                         # 编辑 xx.log 的第一行
    git add xx.log                     # 将 xx.log 添加到暂存区
    git commit -m "xx" xx.log          # 将 xx.log 提交到本地库
    
    git checkout master                # 切换到 master 分支
    vim xx.log                         # 同样也是编辑 xx.log 的第一行
    git add xx.log                     # 将 xx.log 添加到暂存区
    git commit -m "xx" xx.log          # 将 xx.log 提交到本地库
    git merge hot-fix                  # 将 hot-fix 分支合并到 master 分支,此时就会出现问题。具体如下:
    
    # 出现的问题描述如下【提示:自动合并失败】:
    Auto-merging aa.log
    CONFLICT (content): Merge conflict in aa.log
    Automatic merge failed; fix conflicts and then commit the result.
    
    # 注意:如果自动合并失败,那就需要自己进行手动合并了。具体操作如下:
    
    # 手动合并代码,解决冲突问题:
    git reflog                        # 查看当前位置,当前处于 master 分支下
    vim xx.log                        # 编辑 xx.log 文件
    
    # xx.log 文件的部分内容:
    <<<<<<< HEAD
    Hello Python [master modify position]!
    =======
    Hello Python [hot-fix modify position]!
    >>>>>>> hot-fix
    Hello Java!
    # xx.log 文件的部分内容:
    
    
    # 上述内容解释:
    <<<<<<< HEAD
    # 该区域是当前分支的内容
    =======
    # 该区域是被合并分支的内容
    >>>>>>> hot-fix
    
    # 那么如何手动解决上述冲突问题呢?未解决之前的内容是这样的:
    <<<<<<< HEAD
    Hello Python [master modify position]!
    =======
    Hello Python [hot-fix modify position]!
    >>>>>>> hot-fix
    Hello Java!
    
    
    # 解决之后的内容是这样的【就是去掉 <<<< ==== >>>> 等符号,然后保留自己需要的内容】:
    Hello Python [master modify position]!
    Hello Python [hot-fix modify position]!
    
    # 最后保存退出,然后提交
    git add xx.log
    git commit -m "xx"          # 注意:此时提交不需要带上文件名,否则会报如下错误:
    
    # 带上文件名会报错:fatal: cannot do a partial commit during a merge.
    # 到此为止,冲突解决!
    

    第五章:Github 的操作

    一、基本操作

    # 查看远程仓库别名
    git remote -v
    
    # 为 https://gitee.com/guoshizhan/Spring_Boot_Blog.git 远程仓库创建别名,别名是  origin
    git remote add origin https://gitee.com/guoshizhan/Spring_Boot_Blog.git
    
    # 再次查看远程仓库别名
    git remote -v
    
    # 推送代码到远程仓库【把 master 分支推送到远程仓库】
    git push origin master
    
    # 把远程仓库的代码拉取到本地【拉取这个操作会自动提交本地库】
    git pull origin master
    
    # 克隆远程仓库代码【克隆代码是不需要登录账号的】
    git clone https://gitee.com/guoshizhan/Spring_Boot_Blog.git
    
    # 注意:clone 会做如下操作:1、拉取代码 2、初始化本地仓库 3、创建别名【默认是 origin】
    

    二、团队内协作

    # 1、先拉取 guoshizhan 代码
    git clone origin https://gitee.com/guoshizhan/Spring_Boot_Blog.git
    
    # 2、修改一些代码
    # 3、使用 gsz132 用户去推送代码,然后会报错,因为是 gsz132 用户,无法给 guoshizhan 的仓库推送内容
    git push https://gitee.com/guoshizhan/Spring_Boot_Blog.git master
    
    # 4、报错如下:
    remote: Access denied
    fatal: unable to access 'https://gitee.com/guoshizhan/Spring_Boot_Blog.git/': The requested URL returned error: 403
    
    # 5、解决方法:使用 guoshizhan 账号把 gsz132 邀请进来,从而成为团队成员,这样就能推送了。如下图:
    git push https://gitee.com/guoshizhan/Spring_Boot_Blog.git master      # 再次推送即可
    

    三、跨团队协作

    # 跨团队协作具体步骤:
    # 1、gsz132 用户去 fork guoshizhan 用户的代码
    先 fork 别人仓库 => 然后自己修改别人代码 => 最后 Pull request => New Pull request => Create Pull request
    
    # 2、然后 guoshizhan 用户打开 Gitee 网站,查看 Pull requests
    如果可以,那么就 Merge Pull request,然后 confirm merge
    如果不行,那么就讨论或者不合并
    

    第六章:IDEA 集成 Git

    一、集成 Git

    # 该部分内容在尚硅谷的 PDF 文件中写的很清楚了,自行查阅即可
    
    PDF 链接:http://47.113.85.135:8888/documents/
    

    PDF 链接: http://47.113.85.135:8888/documents/

    # 1、如何将当前的项目代码加入到 Git ,即如何使用 IDEA 来初始化本地库?
    具体参考如下两张图
    
    # 2、如何把代码添加到暂存区?
    右键点击项目,选择 Git ==> Add 将项目添加到暂存区
    
    # 3、如何把代码提交到本地库?
    参考尚硅谷的 PDF 文件,很详细的
    

    # 1、在 IDEA 中如何切换提交的代码的历史版本?
    参考尚硅谷的 PDF 文件,很详细的     # 教程中的 Version Control 在新版本中是 Git
    
    # 注意:【黄色】的是 【Head 指针】,代表当前代码所在的位置
    # 注意:【绿色】的是【分支指针】,一般以分支名命名
    
    # 2、在 IDEA 中如何创建分支?
    参考尚硅谷的 PDF 文件,很详细的 
    
    # 3、在 IDEA 中如何切换分支?
    参考尚硅谷的 PDF 文件,很详细的 
    
    # 4、在 IDEA 中如何合并分支?
    参考尚硅谷的 PDF 文件,很详细的 
    
    # 5、在 IDEA 中如何解决冲突?
    参考尚硅谷的 PDF 文件,很详细的 
    

    PDF 链接: http://47.113.85.135:8888/documents/

    二、集成 GitHub

    # 1、在 IDEA 中集成 Github 时,发现几乎登录不上,这时需要使用到 Github 的 token 功能
    参考尚硅谷的 PDF 文件,很详细的 
    
    
    # 2、如何集成 GitLab ?
    参考尚硅谷的 PDF 文件,很详细的,更多详情查看 41-45 视频
    

    第七章:搭建 GitLab 服务器

    一、搭建过程

    # gitlab.sh 启动脚本
    
    sudo rpm -ivh /opt/module/gitlab-ce-13.10.2-ce.0.el7.x86_64.rpm 
    sudo yum install -y curl policycoreutils-python openssh-server cronie
    sudo lokkit -s http -s ssh 
    sudo yum install -y postfix 
    sudo service postfix start 
    sudo chkconfig postfix on 
    curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash 
    sudo EXTERNAL_URL="http://gitlab.example.com" yum -y install gitlab-ce
    

    PDF 链接: http://47.113.85.135:8888/documents/

    细节参考尚硅谷 PDF 文档即可。 搭建结果如下:

    二、登录时报错

    当 GitLab 搭建好并且能访问时,此时可能出现登录报错问题。 具体如下:

    # 1、当遇到登录报错时,回到 Linux 系统,编写和上图一样的命令,写完之后,使用 exit 退出即可
    
    # 2、然后再次进行登录,使用 root 用户,然后使用自己设定的密码登录即可。我的密码是:12345678
    

    参考链接: https://blog.csdn.net/hnmpf/article/details/80518460

    Git
    • 文章作者:GuoShiZhan
    • 创建时间:2021-08-18 09:09:15
    • 更新时间:2021-08-19 15:50:34
    • 版权声明:本文为博主原创文章,未经博主允许不得转载!
    请 在 评 论 区 留 言 哦 ~~~
    1024