美文网首页Jenkins+Gitlab+Git
(二)Git+Gitlab连接使用

(二)Git+Gitlab连接使用

作者: 小二哥很二 | 来源:发表于2020-02-27 15:02 被阅读0次

    前置条件:git客户端windows,gitlab服务端搭建,centos7系统

    一、Git客户端安装,创建本地仓库

    • 1、安装完成,配置用户名和邮箱:
      git config --global user.name "xiaoer"
      git config --global user.email "xiaoer@example.com"
    • 2、在本地计算机右键→Git Bash Here,创建一个空目录:mkdir test;
    • 3、git init 命令使这个目录变成Git可以管理的仓库;
    • 4、可以新建一个文件,如:echo "print('love u'*10)" >> test.py;
    • 5、提交新建的文件:git add test.pygit commit -m "creat file"
    • 6、生成本地的密钥SSH key,作为和远程仓库的连接条件:
      ssh-keygen -t rsa -C "xiaoer@example.com"
    • 7、复制公钥,查看目录下是否有三个文件,如果是,证明生成SSH key成功,复制id_rsa.pub里的内容:
    >>cd ~/.ssh
    >>ls
    id_rsa  id_rsa.pub  known_hosts
    

    二、Gitlab远程服务端搭建

    • 1、配置yum源:vi /etc/yum.repos.d/gitlab-ce.repo,复制以下内容:

    [gitlab-ce]
    name=Gitlab CE Repository
    baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
    gpgcheck=0
    enabled=1

    • 2、更新本地yum缓存:yum makecache;
    • 3、安装GitLab社区版:
      yum install gitlab-ce #自动安装最新版
      yum install gitlab-ce-x.x.x #安装指定版本
    • 4、修改gitlab的访问地址&端口&邮箱,配置文件是gitlab.rb:
      1)命令查找:whereis gitlab
    [root@localhost gitlab]# whereis gitlab
    gitlab: /etc/gitlab
    [root@localhost gitlab]# 
    

    2)cd到该目录下,ls查看目录下文件

    [root@localhost gitlab]# ls
    gitlab.rb  gitlab-secrets.json  trusted-certs
    

    3)编辑gitlab.rb文件[root@localhost gitlab]# vi gitlab.rb

    image.png

    4)配置邮箱和关闭普罗米修斯prometheus

    第一步:在gitlab.rb文件里查找:/Email Settings,修改以下三行,取消注释
    ### Email Settings
     gitlab_rails['gitlab_email_enabled'] = true
     gitlab_rails['gitlab_email_from'] = 'xxxxxx@qq.com'     //填写自己的邮箱
     gitlab_rails['gitlab_email_display_name'] = 'xiaoer'
    # gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
    # gitlab_rails['gitlab_email_subject_suffix'] = ''
    # gitlab_rails['gitlab_email_smime_enabled'] = false
    # gitlab_rails['gitlab_email_smime_key_file'] = '/etc/gitlab/ssl/gitlab_smime.key'
    # gitlab_rails['gitlab_email_smime_cert_file'] = '/etc/gitlab/ssl/gitlab_smime.crt
    
    第二步:修改邮箱服务smtp.qq.com,查找命令:/stmp,修改成如下信息
    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.qq.com"
    gitlab_rails['smtp_port'] = 465
    gitlab_rails['smtp_user_name'] = "xxxxxxx@qq.com"     /填写自己的邮箱
    gitlab_rails['smtp_password'] = "xxxxkkkk"      //此密码为授权码,在qq邮箱设置里生成
    gitlab_rails['smtp_domain'] = "qq.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = true
    
    第三步:关闭prometheus,具体是做什么的,小二暂时不知道,查找,n键翻页,将第一行注释去掉,并改成false
    prometheus['enable'] = false
    # prometheus['monitor_kubernetes'] = true
    # prometheus['username'] = 'gitlab-prometheus'
    # prometheus['group'] = 'gitlab-prometheus'
    # prometheus['uid'] = nil
    
    • 5、最后启动服务:sudo gitlab-ctl reconfiguresudo gitlab-ctl restart

    三、配置远程仓库Gitlab的SSH key,连接本地仓库

    • 1、Gitlab创建新工程


      第一步
      第二步
    • 2、本地仓库Git创建与远程仓库Gitlab的连接:
      git remote add origin(别名,取什么都可以) http://localhost:82/test1/jenkins.git
    • 3、Git直接push会报错,要先拉取下来:git pull origin master
    $ git pull origin master                                                           
    warning: no common commits                                                         
    remote: Enumerating objects: 3, done.                                             
    remote: Counting objects: 100% (3/3), done.       #==>有进度展示                                  
    remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0                       
    Unpacking objects: 100% (3/3), done.                                               
    From http://192.168.1.103:82/test1/jenkins                                          
    * branch            master     -> FETCH_HEAD                                       
    * [new branch]      master     -> origin/master                                   
    fatal: refusing to merge unrelated histories 
    
    • 4、拉取下来后,要合并本地和远程,可以使用git branch -va查看本地和远程的分支
    $ git branch -va                                                                   
    * master                f819cad creat the first py       #本地的
    remotes/origin/master cd45b60 Initial commit             #远程的
    
    直接merge会报错:
    $ git merge origin/master                                                         
    fatal: refusing to merge unrelated histories 
    
    使用git merge -h命令查看帮助,然后使用--allow-unrelated-histories命令
    $ git merge --allow-unrelated-histories origin/master                              
    Merge made by the 'recursive' strategy.                                             
    README.md | 3 +++                                                                  
    1 file changed, 3 insertions(+)                                                    
    create mode 100644 README.md 
    
    然后就可以了,也可以使用gitk --all查看分支树,我看不懂
    
    • 5、然后就可以push了:git push origin master

    四、补充:域名解析

    • 我们访问的gitlab或者jenkins地址都是ip:端口的形式,在上面修改gitlab的url地址时候可以改成其他域名,例如:xiaoer:82,那么我们就需要在本地电脑上做域名解析


      域名解析

    相关文章

      网友评论

        本文标题:(二)Git+Gitlab连接使用

        本文链接:https://www.haomeiwen.com/subject/ipvthhtx.html