gitlba的搭建与使用
实验环境继续使用git的实验环境,详情请点击连接https://www.cnblogs.com/cash-su/p/10131632.html
首先给服务器做一个本机的映射
[root@git1 ~]# echo "git1 127.0.0.1" >> /etc/hosts
gitlab安装包下载
[root@git1 ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.2.3-ce.0.el7.x86_64.rpm
然后安装包
[root@git1 ~]# yum -y localinstall gitlab-ce-11.2.-ce..el7.x86_64.rpm #(这个方法是yum本地安装rpm包,有依赖yum会自己找,不用自己安装依赖包)
重新初始化gitlab
[root@git1 ~]# gitlab-ctl reconfigure
看下gitlab状态
[root@git1 ~]# gitlab-ctl status
run: alertmanager: (pid ) 113s; run: log: (pid ) 112s
run: gitaly: (pid ) 115s; run: log: (pid ) 115s
run: gitlab-monitor: (pid ) 114s; run: log: (pid ) 114s
run: gitlab-workhorse: (pid ) 116s; run: log: (pid ) 115s
run: logrotate: (pid ) 432s; run: log: (pid ) 115s
run: nginx: (pid ) 438s; run: log: (pid ) 115s
run: node-exporter: (pid ) 414s; run: log: (pid ) 115s
run: postgres-exporter: (pid ) 112s; run: log: (pid ) 112s
run: postgresql: (pid ) 527s; run: log: (pid ) 116s
run: prometheus: (pid ) 113s; run: log: (pid ) 113s
run: redis: (pid ) 538s; run: log: (pid ) 116s
run: redis-exporter: (pid ) 280s; run: log: (pid ) 114s
run: sidekiq: (pid ) 450s; run: log: (pid ) 116s
run: unicorn: (pid ) 456s; run: log: (pid ) 116s
看gitlab的版本号
[root@git1 ~]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
11.2.
我们开始访问私人仓库地址就是服务器地址,默认的是80端口

然后登陆gitlab

登陆以后的加密

打中文补丁
[root@git1 ~]# tar xf gitlab---stable-zh.tar.gz
查看补丁的版本号,需要补丁和gitlab的版本号一致
[root@git1 ~]# ls
anaconda-ks.cfg gitlab---stable-zh.tar.gz Python-3.5..tgz
apache-maven-3.5.-bin.tar.gz gitlab-ce-11.2.-ce..el7.x86_64.rpm solo.tar.gz
apache-tomcat-8.5..tar.gz jdk-8u171-linux-x64.tar.gz wordpress-4.9.-zh_CN.tar.gz
git-2.9..tar.gz jenkins-2.138.-1.1.noarch.rpm
gitlab---stable-zh nexus-3.13.--unix.tar.gz
[root@git1 ~]# cat gitlab---stable-zh/VERSION
11.2.
备份英文版的
[root@git1 ~]# cp -r /opt/gitlab/embedded/service/gitlab-rails{,.bak}
然后用中文补丁覆盖刚才的目录
[root@git1 ~]# /bin/cp -rf gitlab---stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/
复制完了重编译,重启
[root@git1 ~]# gitlab-ctl reconfigure
[root@git1 ~]# gitlab-ctl restart
ok: run: alertmanager: (pid 21626) 0s
ok: run: gitaly: (pid 21635) 0s
ok: run: gitlab-monitor: (pid 21645) 0s
ok: run: gitlab-workhorse: (pid 21649) 1s
ok: run: logrotate: (pid 21658) 0s
ok: run: nginx: (pid 21666) 0s
ok: run: node-exporter: (pid 21671) 1s
ok: run: postgres-exporter: (pid 21686) 0s
ok: run: postgresql: (pid 21702) 0s
ok: run: prometheus: (pid 21706) 0s
ok: run: redis: (pid 21717) 1s
ok: run: redis-exporter: (pid 21724) 0s
ok: run: sidekiq: (pid 21814) 0s
ok: run: unicorn: (pid 21829) 0s
补丁完了的样子

创建一个项目



自己设定http的url和ssh的连接
修改gitlab的配置文件/etc/gitlab/gitlab.rb
[root@git1 ~]# vim /etc/gitlab/gitlab.rb


修改完了重编译,重启
[root@git1 ~]# gitlab-ctl reconfigure
[root@git1 ~]# gitlab-ctl restart
ok: run: alertmanager: (pid 28033) 0s
ok: run: gitaly: (pid 28045) 0s
ok: run: gitlab-monitor: (pid 28061) 0s
ok: run: gitlab-workhorse: (pid 28064) 0s
ok: run: logrotate: (pid 28073) 0s
ok: run: nginx: (pid 28075) 1s
ok: run: node-exporter: (pid 28084) 0s
ok: run: postgres-exporter: (pid 28089) 0s
ok: run: postgresql: (pid 28102) 0s
ok: run: prometheus: (pid 28126) 0s
ok: run: redis: (pid 28134) 1s
ok: run: redis-exporter: (pid 28221) 0s
ok: run: sidekiq: (pid 28364) 0s
ok: run: unicorn: (pid 28391) 0s
然后在重新登陆浏览器ip加端口号


测试推送
切换到git服务器上在工作区里镜像添加
[root@git mycode]# git remote add test1 http://192.168.200.148:8888/root/test.git
开始推送
[root@git mycode]# git push test1 master
Username for 'http://192.168.200.148:8888': root
Password for 'http://root@192.168.200.148:8888':
Counting objects: , done.
Compressing objects: % (/), done.
Writing objects: % (/), bytes | bytes/s, done.
Total (delta ), reused (delta )
To http://192.168.200.148:8888/root/test.git
* [new branch] master -> master

推标签(前提得有标签,建立标签和使用标签详情请看git随笔https://www.cnblogs.com/cash-su/p/10131632.html)
[root@git mycode]# git push -u test1 v1.
Username for 'http://192.168.200.148:8888': root
Password for 'http://root@192.168.200.148:8888':
Total (delta ), reused (delta )
To http://192.168.200.148:8888/root/test.git
* [new tag] v1. -> v1.

克隆到本地
[root@git mycode]# git clone http://192.168.200.148:8888/root/test.git v1.0
Cloning into 'v1.0'...
Username for 'http://192.168.200.148:8888': root
Password for 'http://root@192.168.200.148:8888':
remote: Enumerating objects: , done.
remote: Counting objects: % (/), done.
remote: Compressing objects: % (/), done.
remote: Total (delta ), reused (delta )
Unpacking objects: % (/), done.
Checking connectivity... done.
克隆分支到本地
首先建立一个分支
[root@git mycode]# git branch dev
[root@git mycode]# git checkout dev
Switched to branch 'dev'
[root@git mycode]# git branch
* dev
master
[root@git mycode]# touch dix.txt
[root@git mycode]# ls
dix.txt exe.txt test.txt v1.
[root@git mycode]# git add *
[root@git mycode]# git commit -m "分支第一次提交"
[dev 08afd32] 分支第一次提交
files changed, insertion(+)
create mode dix.txt
create mode v1.
[root@git mycode]# git push -u test1 dev
Username for 'http://192.168.200.148:8888': root
Password for 'http://root@192.168.200.148:8888':
Counting objects: , done.
Compressing objects: % (/), done.
Writing objects: % (/), bytes | bytes/s, done.
Total (delta ), reused (delta )
remote:
remote: To create a merge request for dev, visit:
remote: http://192.168.200.148:8888/root/test/merge_requests/new?merge_request%5Bsource_branch%5D=dev
remote:
To http://192.168.200.148:8888/root/test.git
* [new branch] dev -> dev
Branch dev set up to track remote branch dev from test1.

因为是在master主分支建立的分支,所以之前操作的都会有记录
现在在克隆分支
[root@git /]# mkdir -p /test
[root@git /]# cd /test/
[root@git test]# git clone -b dev http://192.168.200.148:8888/root/test.git
Cloning into 'test'...
Username for 'http://192.168.200.148:8888': root
Password for 'http://root@192.168.200.148:8888':
remote: Enumerating objects: , done.
remote: Counting objects: % (/), done.
remote: Compressing objects: % (/), done.
remote: Total (delta ), reused (delta )
Unpacking objects: % (/), done.
Checking connectivity... done.
[root@git test]# ls
test
[root@git test]# cd test/
[root@git test]# ls
dix.txt exe.txt test.txt v1.
利用ssh连接与克隆
生成秘钥对
[root@git test]# ssh-keygen -t rsa -C '491537692@qq.com'
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:7Niv6b5+dyQFTSeTwv+/AjmtsyIvN+lNFGR+Q+sln2c @qq.com
The key's randomart image is:
+---[RSA ]----+
| + ++..|
| + = ++ |
| o O . |
| . + B .|
| S .oo +E|
| + .+....o|
| . o ..+o .|
| o B+o... .|
| +&*++o....|
+----[SHA256]-----+
然后在浏览器上将公钥内容添加上去
[root@git test]# cd ~/.ssh/
[root@git .ssh]# ls
id_rsa id_rsa.pub known_hosts
[root@git .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDW/BG41541Ao7ZYEc1wWhIq65VbP66FE8W7RJFZ1pL9LtL9/Ey0V4g7YBJo3mExNDgaFrR+/SPYt6BAvmDjbmiBJ3FOoKz+rgV73RBRG2WdV4TSKWDy5JVe4k09jgbXzZyfZZUSJHvbitEArjqX6X+ZJrRNWmOCFHAOE+iwwUyArYMwFFM+ckvlGxuN4ztbezLXZPlAnLzB2e84U1NVD5lGQoVmZb7FMZRXq661/+Mt9WTAx0MAW5PSUWicWycztaZnF4mkVwLTWxFug5M7DE8wCmt2S/YprQKgoFuCDI3gvK5jTXtLO4okfaNnOjI00ITjdCOaYfjIq4FdyQ7C1l @qq.com



复制ssh的连接

克隆成功
[root@git .ssh]# cd ~
[root@git ~]# cd /test/
[root@git test]# ls
[root@git test]# git clone -b dev git@192.168.200.148:root/test.git
Cloning into 'test'...
remote: Enumerating objects: , done.
remote: Counting objects: % (/), done.
remote: Compressing objects: % (/), done.
remote: Total (delta ), reused (delta )
Receiving objects: % (/), done.
Checking connectivity... done.
[root@git test]# ls
test
[root@git test]# cd test/
[root@git test]# ls
dix.txt exe.txt test.txt v1.
创建邮件,使用与分支合并的时候
首先开启邮箱的smtp功能

开启gitlab的postfix服务需要切换服务器到git1
[root@git1 ~]# systemctl start postfix
[root@git1 ~]# systemctl enable postfix
[root@git1 ~]# systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
Active: active (running) since Sun -- :: CST; days ago
Main PID: (master)
CGroup: /system.slice/postfix.service
├─ /usr/libexec/postfix/master -w
├─ qmgr -l -t unix -u
└─ pickup -l -t unix -u Dec :: git1 postfix/pickup[]: 8610411BD74C: uid= from=<gitlab@192.168.200.148>
Dec :: git1 postfix/cleanup[]: 8610411BD74C: message-id=<5c18c1668d06d_6ecc3fa4cd9a16ac4807...ail>
Dec :: git1 postfix/qmgr[]: 8610411BD74C: from=<gitlab@192.168.200.148>, size=, nrcpt=...tive)
Dec :: git1 postfix/smtp[]: connect to example.com[::::::25c8:]:: ...able
Dec :: git1 postfix/smtp[]: connect to example.com[93.184.216.34]:: Connection refused
Dec :: git1 postfix/smtp[]: 8610411BD74C: to=<admin@example.com>, relay=none, delay=, del...sed)
Dec :: git1 postfix/qmgr[]: 8610411BD74C: from=<gitlab@192.168.200.148>, size=, nrcpt=...tive)
Dec :: git1 postfix/smtp[]: connect to example.com[::::::25c8:]:: ...able
Dec :: git1 postfix/smtp[]: connect to example.com[93.184.216.34]:: Connection refused
Dec :: git1 postfix/smtp[]: 8610411BD74C: to=<admin@example.com>, relay=none, delay=, de...sed)
Hint: Some lines were ellipsized, use -l to show in
修改gitlab的配置文件
[root@git1 ~]# cp -r /etc/gitlab/gitlab.rb{,.bak}
[root@git1 ~]# vim /etc/gitlab/gitlab.rb







修改完了重编译,重启
[root@git1 ~]# gitlab-ctl reconfigure
[root@git1 ~]# gitlab-ctl restart
进入邮件控制台
[root@git1 ~]# gitlab-rails console
-------------------------------------------------------------------------------------
GitLab: 11.2.3 (06cbee3)
GitLab Shell: 8.1.1
postgresql: 9.6.8
-------------------------------------------------------------------------------------
Loading production environment (Rails 4.2.10)
irb(main):001:0> Notify.test_email('493115250@qq.com','this is title','hello').deliver_now
Notify#test_email: processed outbound mail in 540.8ms
Sent mail to 493115250@qq.com (3359.6ms)
Date: Tue, 18 Dec 2018 18:34:20 +0800
From: GitLab <493115250@qq.com>
Reply-To: GitLab <noreply@192.168.200.148>
To: 493115250@qq.com
Message-ID: <5c18cd2c44d7a_96593f9fb05daf7c72fe@git1.mail>
Subject: this is title
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Auto-Submitted: auto-generated
X-Auto-Response-Suppress: All
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><p>hello</p></body></html>
=> #<Mail::Message:69954716508780, Multipart: false, Headers: <Date: Tue, 18 Dec 2018 18:34:20 +0800>, <From: GitLab <493115250@qq.com>>, <Reply-To: GitLab <noreply@192.168.200.148>>, <To: 493115250@qq.com>, <Message-ID: <5c18cd2c44d7a_96593f9fb05daf7c72fe@git1.mail>>, <Subject: this is title>, <Mime-Version: 1.0>, <Content-Type: text/html; charset=UTF-8>, <Content-Transfer-Encoding: 7bit>, <Auto-Submitted: auto-generated>, <X-Auto-Response-Suppress: All>>
irb(main):002:0>
提别说明Notify.test_email('收件人','标题','内容').deliver_now


注册账号

开启注册时邮箱验证功能


注册时会提示邮箱验证




用户名时su,当时打错了

创建组用户切换root



gitlab的权限
guest访客,只能发表评论,不能读写
reporter报告者
只能克隆,不能提交代码,产品测试用的
developer开发人员
可以进行代码的读写,普通程序员用的
master主程序员
可以添加项目成员,添加标签,创建和保护分支产品经理用的
owner所有者
有所有的权限,一般不用
添加成功以后会自动发邮件给成员



给创建一个项目



gitlba的搭建与使用的更多相关文章
- Online Judge(OJ)搭建(第一版)
搭建 OJ 需要的知识(重要性排序): Java SE(Basic Knowledge, String, FileWriter, JavaCompiler, URLClassLoader, Secur ...
- Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境
一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...
- 总结:Mac前端开发环境的搭建(配置)
新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...
- Angular企业级开发(5)-项目框架搭建
1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
- 一起学微软Power BI系列-使用技巧(4)Power BI中国版企业环境搭建和帐号问题
千呼万唤的Power BI中国版终于落地了,相信12月初的微软技术大会之后已经铺天盖地的新闻出现了,不错,Power BI中国版真的来了,但还有些遗憾,国际版的一些重量级服务如power bi emb ...
- 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...
- 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...
- 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...
随机推荐
- 如何替换vi的配色方案
答: 1.获取配色方案 git clone git://github.com/altercation/vim-colors-solarized.git ~/.vim/bundle/vim-colors ...
- 【转载】TCP 与 UDP 的区别
原文地址:TCP 与 UDP 的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信 ...
- Cocos2d-x学习笔记(一)环境搭建与项目创建
可运行的代码可以说明一切问题. 环境需安装VS201x + Python2.7 + Cocos2d-x-2.2.5.(Linux下参考链接:http://www.cocos2d-x.org/wiki/ ...
- Intellij IDEA 使用spring-boot-devtools无效解决办法一
Intellij IDEA 使用spring-boot-devtools maven依赖 ``` <dependency> <groupId>org.springframewo ...
- DB中字段为null,为空,为空字符串,为空格要怎么过滤取出有效值
比如要求取出微信绑定的,没有解绑的 未绑定,指定字段为null 绑定的,指定字段为某个字符串 解绑的,有的客户用的是更新指定字段为1,有的客户更新指定字段为‘1’ 脏数据的存在,比如该字段为空字符 ...
- 滑动窗口解决Substring Search Problem
2018-07-18 11:19:19 一.Minimum Window Substring 问题描述: 问题求解: public String minWindow(String s, String ...
- Windows中查找命令的路径 (类似Linux中的which命令)
where is a direct equivalent: C:\Users\Joey>where cmdC:\Windows\System32\cmd.exeNote that in Powe ...
- 理解Spring4.0新特性@RestController注解
参考原文 @RestController注解是它继承自@Controller注解.4.0之前的版本,spring MVC的组件都使用@Controller来标识当前类是一个控制器servlet. 使用 ...
- Confluence 6 管理多目录概述
这里是有关目录顺序如何影响处理流程: 目录中的顺序是被用来如何查找用户和组的顺序. 修改用户和用户组将会仅仅应用到应用程序具有修改权限的第一个目录中. 配置目录载入顺序 你可以修改在 Confluen ...
- Spring+Mybatis+Dubbo报错java.lang.reflect.MalformedParameterizedTypeException
原因是spring的jar文件冲突,排除spring的文件即可 <dependency> <groupId>com.alibaba</groupId> <ar ...