zoukankan      html  css  js  c++  java
  • Gitlab仓库搭建和免密使用gitlab

    Gitlab简介

    GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

    可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

    管理的命令
    gitlab-ctl stop
    gitlab-ctl start
    gitlab-ctl restart           

                    Gitlab的仓库搭建

    1)上传安装包

    [root@localhost ~]# rz

    [root@ken ~]# ls | grep git

       gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm

    2)使用yum安装

    [root@localhost ~]# yum localinstall gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm -y

    3)修改配置文件

    [root@localhost ~]# vim /etc/gitlab/gitlab.rb 
    ...
     ## Url on which GitLab will be reachable.
      9 ## For more details on configuring external_url see:
     10 ## https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/configuration.md#c    onfiguring-the-external-url-for-gitlab
     11 external_url 'http://192.168.253.147'    #改成本机的ip地址
     12 
     13 
     14 ## Note: configuration settings below are optional.
     15 ## Uncomment and change the value.
     16 ############################
     17 # gitlab.yml configuration #
     18 ############################

    4)使配置生效

    [root@localhost ~]# gitlab-ctl reconfigure

    5)通过配置文件里更改的ip直接访问浏览器。

                  Gitlab在linux中的使用

    一、密码使用

    用到的命令

    1.git add

    2. git commit

    3. git push origin 字分支名字

    第一步:创建目录

    [root@localhost ~]# mkdir haha
    [root@localhost ~]# cd haha

    [root@localhost haha]# ls -a
    . ..                #不包含.git的目录

    第二步:从web仓库中下载项目

    [root@localhost haha]# git clone http://192.168.253.147/root/mama.git正克隆到 'mama'...  #仓库中的链接
    warning: 您似乎克隆了一个空版本库。
    [root@localhost haha]# ls
    mama                

    第三步:创建新的分支

    [root@localhost haha]# cd mama
    [root@localhost mama]# ls -a
    . .. .git              #下载的版本库中的目录包含.git文件

    第四步:创建测试文件并上传

    [root@localhost mama]# vim test1
    [root@localhost mama]# cat test1
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    ...
    [root@localhost mama]# git add .
    [root@localhost mama]# git commit -m 'v1'          #将测试文件提交到仓库中(中间省略一千字)
    
    。。。
    [root@localhost mama]# git push -u origin master   #将子分支的测试文件推送到主分支,这里master既是子分支又是主分支,因为没有创建子分支
    Username for 'http://192.168.253.147': root
    Password for 'http://root@192.168.253.147': 
    Counting objects: 3, done.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 699 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To http://192.168.253.147/root/mama.git
     * [new branch]      master -> master
    分支 master 设置为跟踪来自 origin 的远程分支 master。

    第五步:在网页查看gitlab

    能看到刚才创建的测试文件即成功。

    二、免密使用

    用途:为了解决每次登陆gitlab都要输入用户密码

    第一步:查看web端gitlab的秘钥地址

    第二步:在本机生成秘钥文件并查看公钥

    [root@localhost ~]# cat .ssh/id_rsa.pub
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzKsjckORW+jl9lnxEXPo+Fym7DsGRM0dR3F3py2+zFlDhVNSAoYN+EeflBlfkoQLorb7viaE
    Nnzx26QxCx9dJ2Gdz1lWkjHoKwxExVU1bBM7DaTYlHD+t4hPM/moXWi4+T+uIeBnTWHcqlVYh6OIC817P7smBk+WKQUhA1L/2QUIutYDWd9FxVy
    IiYwbgtoiLqmhLlOadEfjjCz7hS1x0tsXRliN1lawAQ+RGdzdwSXS984H38nxIVmvwBDXRB+TJrtJyNb8Fn9YKXbETZDUXQPbd48NPmQPHfNdUTd
    ULvAZfX0AM3cphbdMoA2jchDaEjYZlp138lXwQzkXiDTX root@localhost.localdomain

    第三步:复制秘钥信息填写进web服务端

    第四步:粘贴公钥

    第五步:点击提交之后再次下载仓库信息

    注意这里git clone之后写的是ssh的信息,不是http的连接信息了

    回车之后可以看到没有输入任何东西就直接下载完成

    [root@localhost ~]# mkdir user1
    [root@localhost ~]# cd user1
    [root@localhost user1]# git clone git@192.168.253.147:root/mama.git
    正克隆到 'mama'...                  #可以看到不需要验证了
    The authenticity of host '192.168.253.147 (192.168.253.147)' can't be established.
    ECDSA key fingerprint is SHA256:7rl4vvR/lMeNEQyYw4zTD+RUS4ForCBbU8+7jItYy/0.
    ECDSA key fingerprint is MD5:4a:f8:5c:29:12:da:fe:6b:b8:7f:d0:8a:43:fc:f4:21.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.253.147' (ECDSA) to the list of known hosts.
    remote: Counting objects: 3, done.
    remote: Compressing objects: 100% (2/2), done.
    remote: Total 3 (delta 0), reused 0 (delta 0)
    接收对象中: 100% (3/3), done.

    第六步:重新创建一个测试文件,推送到主机仓库中

    [root@localhost mama]# echo '1233' >>test2
    [root@localhost mama]# git add .
    [root@localhost mama]# git commit -m 'v2'
    [master 15373f7] v2
     Committer: root <root@localhost.localdomain>
    您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确
    与否。您可以通过下面的命令对其进行明确地设置以免再出现本提示信息:
    
        git config --global user.name "Your Name"
        git config --global user.email you@example.com
    
    设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:
    
        git commit --amend --reset-author
    
     1 file changed, 1 insertion(+)
     create mode 100644 test2
    [root@localhost mama]# git push -u origin master    #将本地仓库推送到远程主机

    Counting objects: 4, done.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 261 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To git@192.168.253.147:root/mama.git
    5e1b2e6..15373f7 master -> master
    分支 master 设置为跟踪来自 origin 的远程分支 master。

    第七步:网页中查看是否有推送的内容

    可以看到test2文件被上传上来了,证明免密操作成功。

                  Gitlab在web中的免密使用

    第一步:下载并安装git

    第二步:创建空文件夹

    第三步:

    创建一个文件zz.txt作为工作目录并进入目录之后

    右击鼠标有两个选项,一个是bash一个是GUI选择bash

    第四步:初始化并提交文件至仓库

    zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹
    $ git init
    Initialized empty Git repository in C:/Users/zzz/Desktop/新建文件夹/.git/
    
    zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
    $ git add .
    
    zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
    $ git status
    On branch master
    
    Initial commit
    
    Changes to be committed:
      (use "git rm --cached <file>..." to unstage)
    
            new file:   zz.txt        #新文件已被添加到缓存区
    zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
    $ git config --global user.email "you@example.com"      #身份验证
    
    zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
    $ git config --global user.name "Your Name"
    
    zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
    $  git commit -m 'v1'              #提交至版本仓库v1
    [master (root-commit) a268755] v1
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 zz.txt

    第五步:生成密钥并把公钥信息添加到web端

    然后添加主机,将仓库内容推送至主机中

    如果不需要身份验证则证明成功

    zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
    $ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/c/Users/zzz/.ssh/id_rsa):
    Created directory '/c/Users/zzz/.ssh'.          #此目录下保存着公钥信息,复制添加到web端,如同linux的添加密钥操作一样
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /c/Users/zzz/.ssh/id_rsa.
    Your public key has been saved in /c/Users/zzz/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:ISrkWjSgsW4l2IPMPkEbZWdjcmV7BCWRRYaCSJSkBNQ zzz@LAPTOP-H0DJGG0F
    The key's randomart image is:
    +---[RSA 2048]----+
    |XO=+.*.*O*       |
    |OO+E*.oo=        |
    |***.  o...       |
    |o++o . ...       |
    | =+ .   S        |
    |.o..             |
    |.                |
    |                 |
    |                 |
    +----[SHA256]-----+

    zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
    $ git push -u origin master      #直接推送会报错,因为没添加主机
    fatal: 'origin' does not appear to be a git repository
    fatal: Could not read from remote repository.

    Please make sure you have the correct access rights
    and the repository exists.

    zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
    $ git remote add origin git@192.168.253.147:root/mama.git      #添加主机

    zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (master)
    $ git push -u origin master
    The authenticity of host '192.168.253.147 (192.168.253.147)' can't be establisd.
    ECDSA key fingerprint is SHA256:7rl4vvR/lMeNEQyYw4zTD+RUS4ForCBbU8+7jItYy/0.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.253.147' (ECDSA) to the list of known host
    To git@192.168.253.147:root/mama.git

    第六步:重新创建文件夹,下载添加的主机仓库内容

    然后在此仓库中新建文件new.txt写入测试内容,提交v5版本库推送至主机。

    zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (2)/mama (master)
    $ git add .
    
    zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (2)/mama (master)
    $ git commit -m 'v5'              #提交测试文件
    [master 5eee116] v5
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 new.txt
    
    zzz@LAPTOP-H0DJGG0F MINGW32 ~/Desktop/新建文件夹 (2)/mama (master)
    $ git push -u origin master            #推送
    Counting objects: 3, done.
    Delta compression using up to 8 threads.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 288 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To git@192.168.253.147:root/mama.git
       15373f7..5eee116  master -> master
    Branch master set up to track remote branch master from origin.

    可以看到推送过程中并不需要密码

    第七步:查看是否推送成功

    推送成功,也证明免密操作成功。

  • 相关阅读:
    harbor1.9仓库同步迁移
    接口强制删除namespace 为Terminating的方法
    k8s 命令自动补全
    docker harbor 搭建&配置http/https 方法
    docker harbor 清理释放存储空间
    强化学习系列
    Kaggle的Outbrain点击预测比赛分析
    talkingdata比赛分析
    keras模型总结
    深度神经网络多任务学习(Multi-Task Learning in Deep Neural Networks)
  • 原文地址:https://www.cnblogs.com/zzzynx/p/10914680.html
Copyright © 2011-2022 走看看