• 持续集成/持续部署:Git


    DevOps简介

    DevOps是一种理念 理念共同协作

    指让开发测试运维更好的沟通和协作

    自动化一切重复的工作 把时间节省下来交于人与人之间的沟通

    只注重技术不注重成本不是devops所提倡的

    git

    系统环境准备

    [root@gitlab ~]# cat /etc/redhat-release 
    CentOS Linux release 7.8.2003 (Core)
    [root@gitlab ~]# getenforce 
    Disabled
    [root@gitlab ~]# iptables-save 
    [root@gitlab ~]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    安装git

    查看git是否安装
    [root@gitlab ~]# rpm -qa git
    git-1.8.3.1-21.el7_7.x86_64
    使用yum进行安装
    [root@gitlab ~]# yum -y install git
    
    • 1
    • 2
    • 3
    • 4
    • 5

    配置Git

    1.配置git仓库的使用者信息(注意单词不能写错 否则无法使用git)

    [root@gitlab ~]# git config --global user.name 'ahui'
    [root@gitlab ~]# git config --global user.email '123456@qq.com'
    [root@gitlab ~]# git config --global  color.ui true
    
    • 1
    • 2
    • 3

    2.查看配置的结果

    [root@gitlab ~]# git config --list
    user.name=ahui
    user.email=123456@qq.com
    color.ui=true
    #配置文件所在位置
    [root@gitlab ~]# cat .gitconfig 
    [user]
    	name = ahui
    	email = 123456@qq.com
    [color]
    	ui = true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    初始化仓库

    1.对已经存在的目录进行初始化 把目录作为代码仓库

    [root@gitlab ~]# mkdir git_data
    [root@gitlab ~]# cd git_data/
    
    • 1
    • 2

    2.使用git init初始化为仓库

    [root@gitlab git_data]# git init
    Initialized empty Git repository in /root/git_data/.git/
    
    • 1
    • 2

    3.仓库的位置位置当前目录的隐藏目录.git

    [root@gitlab git_data]# ll -a
    total 0
    drwxr-xr-x  3 root root  18 Aug  9 10:21 .
    dr-xr-x---. 3 root root 146 Aug  9 10:20 ..
    drwxr-xr-x  7 root root 119 Aug  9 10:21 .git
    
    • 1
    • 2
    • 3
    • 4
    • 5

    git使用

    git的区域介绍

    如果想把文件管理起来必须经过工作目录提交到暂存区然后在提交到本地仓库

    在这里插入图片描述

    git基础命令

    1.创建普通文件

    [root@gitlab git_data]# touch 1.txt
    
    • 1

    将普通文件提交到git的暂存区 .git目录下index为暂存区
    查看当前目录的状态 使用git status

    [root@gitlab git_data]# git status
    # On branch master
    #
    # Initial commit
    #
    # Untracked files:
    #   (use "git add ..." to include in what will be committed)
    #
    #	1.txt
    nothing added to commit but untracked files present (use "git add" to track)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2.使用git add file 将新的文件提交到暂存区

    [root@gitlab git_data]# git add 1.txt
    
    • 1

    或者使用git add .将工作区的所有文件提交到暂存区

    [root@gitlab git_data]# git add .
    
    • 1

    3.将暂存区的文件提交的本地仓库进行管理
    commit: 提交
    -m : 消息 描述信息 自定义内容

    [root@gitlab git_data]# git commit -m "newfile 1.txt v1.1"
    [master (root-commit) 5767802] newfile 1.txt v1.1
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 1.txt
    
    • 1
    • 2
    • 3
    • 4

    注意: 提交到了本地仓库则类似对当前的文件做了一次快照操作
    每一次的commit提交都是为当前的状态做了一次快照

    4.使用git rm --cached 删除暂存区的内容

    [root@gitlab git_data]# git rm --cached 1.txt
    rm '1.txt'
    
    • 1
    • 2

    5.时刻保证当前的工作目录为干净的

    [root@gitlab git_data]# git status
    # On branch master
    nothing to commit, working directory clean
    
    • 1
    • 2
    • 3

    6.git 删除后 通过暂存区恢复工作目录的文件 会覆盖 慎重使用

    [root@gitlab git_data]# git checkout 1.txt
    [root@gitlab git_data]# ll
    total 0
    -rw-r--r-- 1 root root 0 Aug  9 10:40 1.txt
    
    • 1
    • 2
    • 3
    • 4

    7.git的删除流程

    [root@gitlab git_data]# git rm 1.txt
    rm '1.txt' 
    
    • 1
    • 2
    1. 提交到暂存区

      [root@gitlab git_data]# git add .
      
      • 1
    2. 提交到本地仓库

      [root@gitlab git_data]# git commit -m "del 1.txt"
      
      • 1

    8.git的重命名

    [root@gitlab git_data]# git mv 1.txt 1.bak
    [root@gitlab git_data]# git status
    # On branch master
    # Changes to be committed:
    #   (use "git reset HEAD ..." to unstage)
    #
    #	renamed:    1.txt -> 1.bak
    #
    [root@gitlab git_data]# git add .
    [root@gitlab git_data]# git commit -m "modifile 1.txt--> 1.bak"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    9.git的区域比对
    git diff比对的是工作目录和暂存区的不同
    git diff --cached比对的是暂存区和本地仓库的不同

    [root@gitlab git_data]# git diff
    
    [root@gitlab git_data]# echo 11111 >> 1.bak 
    [root@gitlab git_data]# git diff
    diff --git a/1.bak b/1.bak
    index e69de29..f7c6dd0 100644
    --- a/1.bak
    +++ b/1.bak
    @@ -0,0 +1 @@
    +11111
    [root@gitlab git_data]# git diff --cached
    [root@gitlab git_data]# git add .
    [root@gitlab git_data]# git diff
    [root@gitlab git_data]# git diff --cached
    diff --git a/1.bak b/1.bak
    index e69de29..f7c6dd0 100644
    --- a/1.bak
    +++ b/1.bak
    @@ -0,0 +1 @@
    +11111
    [root@gitlab git_data]# git commit -m "mofiled 1.bak--->11111"
    [master 32758c0] mofiled 1.bak--->11111
     1 file changed, 1 insertion(+)
    [root@gitlab git_data]# git diff --cached
    [root@gitlab git_data]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    10.看git的提交的日志

    [root@gitlab git_data]# git log
    commit 32758c01da6e5c695e6edad6e90d1f7c602ab81a
    Author: ahui <123456@qq.com>
    Date:   Tue Aug 9 10:51:12 2022 +0800
    
        mofiled 1.bak--->11111
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    一行显示查看提交的日志

    [root@gitlab git_data]# git log --oneline
    32758c0 mofiled 1.bak--->11111
    a2eebb8 modifile 1.txt--> 1.bak
    5767802 newfile 1.txt v1.1
    
    • 1
    • 2
    • 3
    • 4

    显示当前的指针指向

    [root@gitlab git_data]# git log --oneline --decorate
    32758c0 (HEAD, master) mofiled 1.bak--->11111
    a2eebb8 modifile 1.txt--> 1.bak
    5767802 newfile 1.txt v1.1
    
    • 1
    • 2
    • 3
    • 4

    显示版本的详细信息

    [root@gitlab git_data]# git log --oneline -p
    32758c0 mofiled 1.bak--->11111
    diff --git a/1.bak b/1.bak
    index e69de29..f7c6dd0 100644
    --- a/1.bak
    +++ b/1.bak
    @@ -0,0 +1 @@
    +11111
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    只显示最近的一条信息

    [root@gitlab git_data]# git log --oneline -p -1
    32758c0 mofiled 1.bak--->11111
    diff --git a/1.bak b/1.bak
    index e69de29..f7c6dd0 100644
    --- a/1.bak
    +++ b/1.bak
    @@ -0,0 +1 @@
    +11111
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    11.通过日志进行代码的回滚
    第一步: 查看日志

    [root@gitlab git_data]# git log --oneline
    a789ec1 newfile 1.2.3.txt
    32758c0 mofiled 1.bak--->11111
    a2eebb8 modifile 1.txt--> 1.bak
    5767802 newfile 1.txt v1.1
    
    • 1
    • 2
    • 3
    • 4
    • 5

    第二步: 通过哈希值进行回滚操作

    [root@gitlab git_data]# git reset --hard 5767802
    HEAD is now at 5767802 newfile 1.txt v1.1
    [root@gitlab git_data]# ll
    total 0
    -rw-r--r-- 1 root root 0 Aug  9 11:20 1.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5

    使用git reflog查看所有的快照操作

    [root@gitlab git_data]# git reflog
    5767802 HEAD@{0}: reset: moving to 5767802
    a789ec1 HEAD@{1}: commit: newfile 1.2.3.txt
    32758c0 HEAD@{2}: commit: mofiled 1.bak--->11111
    a2eebb8 HEAD@{3}: commit: modifile 1.txt--> 1.bak
    5767802 HEAD@{4}: reset: moving to 576780277
    99ba3c4 HEAD@{5}: commit: del 1.txt
    5767802 HEAD@{6}: commit (initial): newfile 1.txt v1.1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    使用哈希值快速回滚

    [root@gitlab git_data]# git reset --hard a789ec1
    HEAD is now at a789ec1 newfile 1.2.3.txt
    [root@gitlab git_data]# ll
    total 4
    -rw-r--r-- 1 root root 6 Aug  9 11:23 1.bak
    -rw-r--r-- 1 root root 0 Aug  9 11:20 1.txt
    -rw-r--r-- 1 root root 0 Aug  9 11:23 2.txt
    -rw-r--r-- 1 root root 0 Aug  9 11:23 3.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    git分支

    01.查看当前分支 星在谁的前面当前就是处于哪个分支

    [root@gitlab git_data]# git branch
    * master
    
    • 1
    • 2

    02.创建dev分支
    分支的名称可以自定义

    [root@gitlab git_data]# git branch dev
    [root@gitlab git_data]# git branch
      dev
    * master
    
    • 1
    • 2
    • 3
    • 4

    或者使用git checkout -b 分支名称 创建并切换到新的分支

    [root@gitlab git_data]# git checkout -b dev
    Switched to a new branch 'dev'
    [root@gitlab git_data]# git branch
    * dev
      master
    [root@gitlab git_data]# ll
    total 4
    -rw-r--r-- 1 root root 6 Aug  9 11:23 1.bak
    -rw-r--r-- 1 root root 0 Aug  9 11:20 1.txt
    -rw-r--r-- 1 root root 0 Aug  9 11:23 2.txt
    -rw-r--r-- 1 root root 0 Aug  9 11:23 3.txt
    -rw-r--r-- 1 root root 0 Aug  9 11:50 dev.txt
    -rw-r--r-- 1 root root 0 Aug  9 11:53 zs.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    03.切换到dev分支开发新的功能

    [root@gitlab git_data]# git checkout dev
    Switched to branch 'dev'
    [root@gitlab git_data]# git branch
    * dev
      master
    
    • 1
    • 2
    • 3
    • 4
    • 5

    04.在dev分支创建dev.txt

    [root@gitlab git_data]# touch dev.txt
    [root@gitlab git_data]# git add .
    [root@gitlab git_data]# git commit -m "newfile dev.txt v1.2"
    [dev 55fe881] newfile dev.txt v1.2
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 dev.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    05.切换到master分支查看

    [root@gitlab git_data]# git checkout master
    Switched to branch 'master'
    [root@gitlab git_data]# ll
    total 4
    -rw-r--r-- 1 root root 6 Aug  9 11:23 1.bak
    -rw-r--r-- 1 root root 0 Aug  9 11:20 1.txt
    -rw-r--r-- 1 root root 0 Aug  9 11:23 2.txt
    -rw-r--r-- 1 root root 0 Aug  9 11:23 3.txt
    [root@gitlab git_data]# git branch
      dev
    * master
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    06.分支合并
    在master主分支合并dev开发分支

    [root@gitlab git_data]# git merge dev
    Updating a789ec1..55fe881
    Fast-forward
     dev.txt | 0
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 dev.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    07.删除分支

    [root@gitlab git_data]# git branch -d dev
    Deleted branch dev (was 55fe881).
    [root@gitlab git_data]# git branch
    * master
    
    • 1
    • 2
    • 3
    • 4

    08.冲突合并
    修改1.bak第二行增加2222222

    [root@gitlab git_data]# vim 1.bak 
    
    • 1

    提交到暂存区

    [root@gitlab git_data]# git add .
    
    • 1

    提交到分支的本地仓库

    [root@gitlab git_data]# git commit -m 'modifled 1.bak>22222'
    [dev 1d7e871] modifled 1.bak>22222
     1 file changed, 1 insertion(+)
    
    • 1
    • 2
    • 3

    切换到主分支

    [root@gitlab git_data]# git checkout master
    Switched to branch 'master'
    
    • 1
    • 2

    修改1.bak的第二行为test 提交到master的本地仓库

    [root@gitlab git_data]# vim 1.bak 
    [root@gitlab git_data]# git add .
    [root@gitlab git_data]# git commit -m "modifled 1.bak -->test"
    [master 3855bc1] modifled 1.bak -->test
     1 file changed, 1 insertion(+)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    合并代码失败

    [root@gitlab git_data]# git merge dev
    Auto-merging 1.bak
    CONFLICT (content): Merge conflict in 1.bak
    Automatic merge failed; fix conflicts and then commit the result.
    [root@gitlab git_data]# cat 1.bak 
    11111
    <<<<<<< HEAD
    test
    =======
    ahui
    >>>>>>> dev
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    解决代码冲突 手动解决(手动修改需要保留的内容和需要删除的内容然后提交到本地仓库即可)

    [root@gitlab git_data]# vim 1.bak 
    [root@gitlab git_data]# git add .
    [root@gitlab git_data]# git commit -m "merge dev...."
    [master bcfe9ea] merge dev....
    [root@gitlab git_data]# git status
    # On branch master
    nothing to commit, working directory clean
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    git标签

    标签的作用:

    标签也是指向了一次commit提交,是一个里程碑式的标签,回滚打标签直接加标签号,不需要加唯一字符串不好记
    创建标签:git tag -a 版本 -m “信息”

    [root@gitlab git_data]# git tag
    [root@gitlab git_data]# git tag -a v1.3 -m "v1.3"
    [root@gitlab git_data]# git tag
    v1.3
    [root@gitlab git_data]# git log --oneline --decorate
    bcfe9ea (HEAD, tag: v1.3, master) merge dev....
    3855bc1 modifled 1.bak -->test
    1d7e871 modifled 1.bak>22222
    efb6c05 newfile zs.txt
    55fe881 newfile dev.txt v1.2
    a789ec1 newfile 1.2.3.txt
    32758c0 mofiled 1.bak--->11111
    a2eebb8 modifile 1.txt--> 1.bak
    5767802 newfile 1.txt v1.1
    [root@gitlab git_data]# git tag -a v1.1 5767802 -m v1.1
    [root@gitlab git_data]# git tag
    v1.1
    v1.3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    通过标签快速回滚到对应的版本

    [root@gitlab git_data]# git reset --hard v1.1
    HEAD is now at 5767802 newfile 1.txt v1.1
    [root@gitlab git_data]# ll
    total 0
    -rw-r--r-- 1 root root 0 Aug  9 11:20 1.txt
    [root@gitlab git_data]# git reset --hard v1.3
    HEAD is now at bcfe9ea merge dev....
    [root@gitlab git_data]# ll
    total 4
    -rw-r--r-- 1 root root 18 Aug  9 15:00 1.bak
    -rw-r--r-- 1 root root  0 Aug  9 11:20 1.txt
    -rw-r--r-- 1 root root  0 Aug  9 15:00 2.txt
    -rw-r--r-- 1 root root  0 Aug  9 15:00 3.txt
    -rw-r--r-- 1 root root  0 Aug  9 15:00 dev.txt
    -rw-r--r-- 1 root root  0 Aug  9 15:00 zs.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    删除git标签

    [root@gitlab git_data]# git tag
    v1.1
    v1.3
    [root@gitlab git_data]# git tag -d v1.1
    Deleted tag 'v1.1' (was 9b33304)
    [root@gitlab git_data]# git tag
    v1.3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    查看版本的详细信息

    [root@gitlab git_data]# git show v1.3
    tag v1.3
    Tagger: ahui <123456@qq.com>
    Date:   Tue Aug 9 14:58:31 2022 +0800
    
    v1.3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    常用git命令

    1. 初始化仓库
      git init

    2. 提交文件到暂存区
      git add file

    3. 提交文件到本地仓库
      git commit -m ‘描述信息’

    4. 查看当前仓库的信息
      git status

    5. 将暂存区的内容覆盖工作目录
      git checkout 1.txt

    6. 删除文件
      git rm 1.txt
      git add .
      git commit -m ‘描述信息’

    7. 文件重命名
      git mv 1.txt 1.bak

    8. 比对文件
      git diff 比对的工作区和暂存区的不同
      git diff --cached 比对的暂存区和本地仓库的不同

    9. 日志命令
      git log # 查看当前仓库的提交日志
      git log --oneline # 一行显示仓库的提交日志
      git log --oneline --decorate # 显示指针指向
      git log --oneline -p # 显示版本的详细信息
      git log --oneline 1 # 显示最后的一条提交信息
      git reflog # 查看所有的历史提交

    10. 回滚操作
      通过哈希值进行回滚操作
      git reset --hard 哈希值

    gitlab

    安装gitlab

    1.rz上传gitlab rpm包

    -rw-r--r-- 1 root root 389758391 Aug 22  2018 gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
    [root@gitlab ~]# rpm -ivh gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm 
    warning: gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY
    error: Failed dependencies:
    	policycoreutils-python is needed by gitlab-ce-10.2.2-ce.0.el7.x86_64
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.安装依赖

    [root@gitlab ~]# yum -y install policycoreutils-python
    
    • 1

    3.安装

    [root@gitlab ~]# rpm -ivh gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm 
    warning: gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:gitlab-ce-10.2.2-ce.0.el7        ################################# [100%]
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.修改URL地址
    练习直接配置成IP地址 http://10.0.0.200

    [root@gitlab ~]# grep external_url /etc/gitlab/gitlab.rb
    external_url 'http://gitlab.ahui.com'
    
    • 1
    • 2

    5.重新配置加载 所有服务会自动启动

    [root@gitlab ~]# gitlab-ctl reconfigure
    
    • 1

    6.gitlab的启动和停止命令

    [root@gitlab ~]# gitlab-ctl start
    [root@gitlab ~]# gitlab-ctl restart
    [root@gitlab ~]# gitlab-ctl stop
    [root@gitlab ~]# gitlab-ctl status
    
    • 1
    • 2
    • 3
    • 4

    登录配置gitlab外观

    第一次登录需要重新设置下密码最少8位

    用户名: root 密码自定义

    在这里插入图片描述

    在这里插入图片描述

    填写公司的logo和信息
    在这里插入图片描述

    创建组

    在这里插入图片描述

    在这里插入图片描述

    基于组创建项目

    在这里插入图片描述

    在这里插入图片描述

    将test仓库作为本地的远程仓库

    第一步: 本地生成公钥

    [root@gitlab ~]# ssh-keygen
    
    • 1

    第二步: 将本地的ssh公钥上传到gitlab root用户中

    在这里插入图片描述
    在这里插入图片描述

    第三步: 进入本地已存在的仓库进行配置

    [root@gitlab ~]# cd git_data/
    
    • 1

    查看远程仓库是否存在 默认为空

    [root@gitlab git_data]# git remote
    [root@gitlab git_data]# 
    
    • 1
    • 2

    如果存在 可以改名 可以删除 没有远程仓库不需要执行这条命令

    [root@gitlab git_data]# #git remote rename origin old-origin
    
    • 1

    origin 远程仓库的名称 可以自定义
    将test仓库配置成本地的远程仓库
    添加远程仓库名称为origin

    [root@gitlab git_data]# git remote add origin git@gitlab.ahui.com:test/test.git
    
    • 1

    查看远程仓库

    [root@gitlab git_data]# git remote
    origin
    
    • 1
    • 2

    显示远程仓库的详细地址

    [root@gitlab git_data]# git remote -v
    origin	git@gitlab.ahui.com:test/test.git (fetch)
    origin	git@gitlab.ahui.com:test/test.git (push)
    
    • 1
    • 2
    • 3

    删除远程仓库

    [root@gitlab git_data]# #git remote remove origin 
    
    • 1

    将本地代码推送到远程仓库test中

    [root@gitlab git_data]# git push -u origin master
    
    • 1

    注意: 我们使用的为域名 在推送代码时linux会查找域名对应的IP地址 默认访问外网 所以我们需要做hosts解析

    [root@gitlab git_data]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.0.0.200 gitlab.ahui.com
    
    • 1
    • 2
    • 3
    • 4

    使用 git push推送代码到远程仓库

    [root@gitlab git_data]# git push -u origin master
    The authenticity of host 'gitlab.ahui.com (10.0.0.200)' can't be established.
    ECDSA key fingerprint is SHA256:nWOnZaYg9W2wWVy4/jgCdTaCNvfE6UcGAfGsNWmim3Q.
    ECDSA key fingerprint is MD5:e9:d2:21:29:44:25:90:49:23:ff:e2:e2:7d:cf:97:55.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'gitlab.ahui.com,10.0.0.200' (ECDSA) to the list of known hosts.
    Counting objects: 23, done.
    Compressing objects: 100% (15/15), done.
    Writing objects: 100% (23/23), 1.84 KiB | 0 bytes/s, done.
    Total 23 (delta 5), reused 0 (delta 0)
    To git@gitlab.ahui.com:test/test.git
     * [new branch]      master -> master
    Branch master set up to track remote branch master from origin.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    创建新的代码 然后推送到远程仓库

    git push 推送代码到远程仓库
    git clone 下载完整的仓库到本地
    git pull 更新代码到本地

    第一步: 创建或者修改代码文件

    [root@gitlab git_data]# touch test.txt
    
    • 1

    第二步: 提交到暂存区

    [root@gitlab git_data]# git add .
    
    • 1

    第三步: 提交到本地仓库

    [root@gitlab git_data]# git commit -m "newfile test.txt"
    
    • 1

    第四步: 推送到远程仓库

    [root@gitlab git_data]# git push -u origin master
    
    • 1

    创建普通用户

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    最后将用户添加到test组才可以看到对应的项目

    在这里插入图片描述

    在这里插入图片描述

    然后到dev用户界面可以看到项目
    在这里插入图片描述

    然后打开10.0.0.7主机生成秘钥对

    将公钥配置到dev用户下
    在这里插入图片描述

    最后在10.0.0.7命令行使用gitclone下载仓库

    [root@test ~]# git clone git@gitlab.ahui.com:test/test.git
    Cloning into 'test'...
    The authenticity of host 'gitlab.ahui.com (10.0.0.200)' can't be established.
    ECDSA key fingerprint is SHA256:nWOnZaYg9W2wWVy4/jgCdTaCNvfE6UcGAfGsNWmim3Q.
    ECDSA key fingerprint is MD5:e9:d2:21:29:44:25:90:49:23:ff:e2:e2:7d:cf:97:55.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'gitlab.ahui.com,10.0.0.200' (ECDSA) to the list of known hosts.
    remote: Counting objects: 29, done.
    remote: Compressing objects: 100% (21/21), done.
    remote: Total 29 (delta 8), reused 0 (delta 0)
    Receiving objects: 100% (29/29), done.
    Resolving deltas: 100% (8/8), done.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    保护主干分支 禁止开发直接提交到主分支

    在这里插入图片描述
    在这里插入图片描述

    开发推送代码到其他分支

    1.创建dev分支

    
    [root@test test]# git branch dev
    [root@test test]# git branch
      dev
    * master
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.在master主分支 推送dev分支到远程仓库

    [root@test test]# git push -u origin dev
    Counting objects: 3, done.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (2/2), 218 bytes | 0 bytes/s, done.
    Total 2 (delta 1), reused 0 (delta 0)
    remote: 
    remote: To create a merge request for dev, visit:
    remote:   http://gitlab.oldboy.com/oldboy/test/merge_requests/new?merge_request%5Bsource_branch%5D=dev
    remote: 
    To git@gitlab.oldboy.com:oldboy/test.git
    * [new branch]      dev -> dev
    Branch dev set up to track remote branch dev from origin.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    发起代码合并请求

    选择dev分支 然后选择右上角的创建合并请求(只有第一次能看到此处有按键 第二次在菜单栏有合并请求)

    在这里插入图片描述

    或者使用:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    第二步: 发布完成后需要到管理员界面进行合并代码

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    【数字IC前端入门】Questasim使用
    Mac安装MySQL详细教程
    JMeter基础 —— 使用Badboy录制JMeter脚本!
    异常语法详解
    python多线程Thread执行for循环并得到返回结果
    白杨SEO:有技能专长的人想要做好知识付费的核心是什么?
    麒麟系统开发笔记(十四):在国产麒麟系统上编译libmodbus库、搭建基础开发环境和移植测试Demo
    Go 之 redis 处理
    笔记本CPU温度多少正常?这些知识不可忽视!
    LuaHttp库写的一个简单的爬虫
  • 原文地址:https://blog.csdn.net/AHui_CSDN/article/details/126253382