(二)Git+Gitlab连接使用

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

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

  • 1、安装完成,配置用户名和邮箱:
    git config --global user.name "xiaoer"
    git config --global user.email "[email protected]"
  • 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 "[email protected]"
  • 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'] = '[email protected]'     //填写自己的邮箱
 gitlab_rails['gitlab_email_display_name'] = 'xiaoer'
# gitlab_rails['gitlab_email_reply_to'] = '[email protected]'
# 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'] = "[email protected]"     /填写自己的邮箱
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连接使用)