4、git和gitlab的配置(2)
4.10、使用 gitlib 模拟开发流程:
1、项目经理指定开发计划:
|
project01 |
需求 |
开发者 |
完成日期 |
|
v1.0 |
首页 |
dev01 |
4.28 |
|
支付 |
dev02 |
4.30 |
2、rpm(项目经理)用户登录进行任务分配:
(1)创建里程碑:
1)创建:
2)填写内容:
(2)分配任务:
1)新建分配:
2)分配 dev01 任务:
3)分配 dev02 任务:
3、dev01 接收开发任务:
(1)dev01 登录 gitlab查看:
(2)dev01 进行开发:
cd /root/app01/
#登录到linux客户端;
git checkout -b shouye
#创建新的分支并切到该分支;
echo "shouye" >/root/app01/index.html
#在新的分支上创建首页文件;
git add .
#将所有新加的代码文件加入到暂存区;
git commit -m "shouye"
#提交缓存区所有的代码文件;
git push origin shouye #将分支上传到远程 gitlab仓库;
枚举对象: 4, 完成.
对象计数中: 100% (4/4), 完成.
使用 2 个线程进行压缩
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (3/3), 269 bytes | 269.00 KiB/s, 完成.
总共 3 (差异 0),复用 0 (差异 0)
remote:
remote: To create a merge request for shouye, visit:
remote: http://172.16.1.90/java/app01/merge_requests/new?merge_request%5Bsource_branch%5D=shouye
remote:
To 172.16.1.90:java/app01.git
* [new branch] shouye -> shouye
(3)dev01用户登录后请求pm(项目经理)进行merge操作:
1)多了一个分支:
2)创建 merge request:
3)填写merge request 内容:
4、mp(开发经理)对merge 请求进行确认:
(1)查看开发者merge请求:
(2)确认请求:
(3)查看验证:
(4)关闭分支:
#在分支merge后手动关闭issue,开发人员的开发任务提醒自动关闭;
#如果不想在merge后手动关闭issue,在 git 提交代码的命令格式为 “git commit -m "close #2"” 其中#2代表的是开发任务的标号;
(5)查看里程碑的进度:
5、dev 01 用已申请的megre的代码文件进行标记完成:
6、git 客户端操作:
git checkout master
#切回到master分支;
git pull
#将分支合并到master后的代码拉倒本地;
#如果需要开发再新建分支,如此往复即可;
7、dev 02 的操作仿照本节“3-6小节”即可;
4.11、gitlab小结:
1、root用户创建对象:
(1)创建组;
(2)创建用户(也可以用户自己注册);
(3)创建项目;
(4)授权项目用户;
(5)小结:
1)超级管理员分配组、项目和用户及权限,然后用户进行协同开发;
2)用户的权限由用户的角色赋予,然后限制在组中;
2、小案例:
(1)root用户创建对象;
(2)项目经理创建主分支库;
(3)项目经理创建里程配,并把开发issue分配到各个开发用户;
(4)开发用户登录gitlab查看自己的开发内容,git clone 项目库;
(5)开发用户创建分支并在新的分支上进行开发,开发完成后push到远程gitlab库;
(6)开发用户登录gitlab查看push的分支,并向项目经理提出merge request 请求;
(7)开发经理登录gitlab收到开发用户的merge request 请求,判断代码无误后将分支代码合并到主库并关闭issue;
(8)开发用户在gitlab会发现自己的开发任务消失了;
(9)开发用户切到主分支,git pull 将merge后的代码库拉下来,至此一次完整的开发结束,如果开发用户接到了新的
开发需求,只要重复以上的“(5)-(9)”步骤即可;
4.12、gitlab SourceTree的使用:
1、SourceTree简介:
SourceTree拥有一个精美简洁的界面,大大简化了开发者与代码库之间的Git操作方式,这对于那些不熟悉Git命令的开发者来说非常实用;
2、下载:
https://product-downloads.atlassian.com/software/sourcetree/windows/ga/SourceTreeSetup-3.0.17.exe
此版本使用的是 git-2.18.0 版本;
3、安装:
(1)前提条件:
本地需要安装一个 git bash 并和 gitlab 之间的通信打通,git bash 的具体操作
查看“4.9、打通gitlab和与 git linux、windows客户端的通信:”;SourceTree会使用
git bash 的git版本不使用SoureTree内置的git版本;
(2)安装时根据提示注册一个Bitbucket账号;
(3)然后一路默认安装;
(4)添加本地的ssh秘钥;
(5)克隆远程 gitlab 仓库:
(6)克隆完成:
4.13、gitlab备份与恢复:
1、备份:
(1)创建备份目录:
mkdir -p /data/backup/gitlab/
chown -R git:git /data/backup/gitlab/
(2)修改配置文件:
vim /etc/gitlab/gitlab.rb #配置文件是注释状态,可以直接添加;
gitlab_rails['backup_path'] = "/data/backup/gitlab"
#设置备份的路径;
gitlab_rails['backup_keep_time'] = 604800
#设置备份保存的时间,604800秒=7天;
(3)生效配置文件:
gitlab-ctl reconfigure
(4)重启gitlab:
gitlab-ctl restart
#提示:gitlab重启后需要30s后才可以正常使用;
(5)设置定时备份任务:
1)crontable -e
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create $>/dev/null
2)提示:
直接执行“/usr/bin/gitlab-rake gitlab:backup:create”命令可以直接执行gitlab备份;
查看备份文件:
ls -lh /data/backup/gitlab/
总用量 192K
-rw------- 1 git git 190K 4月 29 12:11 1556511085_2019_04_29_11.6.0_gitlab_backup.tar
#“1556511085_2019_04_29_11.6.0”表示gitlab备份时间戳;
2、恢复:
(1)停止数据写入服务:
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
(2)恢复:
gitlab-rake gitlab:backup:restore BACKUP=1556511085_2019_04_29_11.6.0
(3)重启gitlab:
gitlab-ctl restart
4.14、配置gitlab邮件:
1、在网易注册一个163邮箱并开通smtp服务:
1)
2)
3)
2、修改gitlab配置文件:
vim /etc/gitlab/gitlab.rb #配置文件是注释状态,可以直接添加;
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'hyjy2504164765@163.com'
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "hyjy2504164765"
gitlab_rails['smtp_password'] = "linux123"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
3、生效gitlab配置:
gitlab-ctl reconfigure
4、重启gitlab:
gitlab-ctl restart
5、测试:
(1)输入以下的命令:
gitlab-rails console
-------------------------------------------------------------------------------------
GitLab: 11.6.0 (075f960)
GitLab Shell: 8.4.3
postgresql: 9.6.11
-------------------------------------------------------------------------------------
Loading production environment (Rails 5.0.7)
irb(main):005:0> Notify.test_email('hyjy2504164765@163.com', 'TEST', 'TEST').deliver_now
(2)查看邮箱:
6、gitlab邮箱的其它用途:
(1)当用户登录gitlab忘记密码时:
用户在在注册的时候填了邮箱,此时就可以通过邮箱找回密码;
1)忘记密码:
2)重置密码:
3)重置密码邮件链接查收:
4)重置密码:
用户此刻就可以使用新的密码进行登录了;
2、用户代码提交,用户被分到哪个项目……提醒;
4.15、gitlab 项目权限说明表:
https://docs.gitlab.com/ce/user/permissions.html
#gitlab说明文档;
4.16、补充:
1、merge(合并):
git merge slave
将分支中的文件合并到 master,git log 中会多一个merge提交记录;
在哪个位置建立的分支,那么此时的分支的git log和master相同,物理的存储是分开的,逻辑上时
连接的;
2、rebase(变基):
git rebase slave
将分支中的文件合并到 master,git log 中没有提交记录;
就好像没有用过分支一样,在master上开发的一样的;
用于隐藏分支修正master,不保留分支的开发历史;
4、git和gitlab的配置(2)的更多相关文章
- 4、git和gitlab的配置(1)
4.0.服务器说明: 服务器名称 ip地址 controller-node1 172.16.1.90 4.1.git介绍: 1.git分布式图: 2.git区域: 3.四种状态: 上面的操作在工作目录 ...
- win10下git与gitlab安装与文件上传
目前了解到的版本管理工具有三种:gitlab GitHub 和 码云 个人感觉 gitlab 在公司用的较多 便于协同办公 GitHub各种资源有很多,适合个人使用 码云是中文版 便于入门 ...
- git安装以及gitlib配置
安装Git:详见http://www.cnblogs.com/xiuxingzhe/p/9300905.html 开通gitlab(开通需要咨询所在公司的gitlab管理员)账号后,本地Git仓库和g ...
- Gerrit与Gitlab同步配置replication&其他配置
一.Gerrit与Gitlab同步配置 当配置好gerrit环境后,还需要与现有gitlab库进行同步配置,否则会影响现有开发与打包流程. 1.安装gerrit replication插件 unzip ...
- 【Git】 GitLab简单使用
本例介绍简单实用GitLab,安装请参照[Git] GitLab服务器社区版安装与配置 1.用户和组的管理 a.创建组,在首页点击Create a group b.创建用户,在首页点击Add peop ...
- Jenkins中使用GitLab的配置
1. 概述 在Jenkins中从GitLab上拉取代码进行打包或测试. 2. 安装 Jenkins和GitLab默认已经安装好,安装过程此处不再赘述. 在Jenkins上安装Git和Gitlab插件, ...
- Git管理多个SSH密钥,Git多帐号配置
版权声明:转载须标明本文转自严振杰的博客 https://blog.csdn.net/yanzhenjie1003/article/details/69487932版权声明:转载必须注明本文转自严振杰 ...
- 本地docker搭建gitlab, 并配置ldap认证
基于Docker在Mac OS X系统中的部署和设置GitLab的具体过程如下: 1. 安装Docker for Mac (参见https://docs.docker.com/docker-for ...
- Git连接GitLab远程仓库
1.简介 远程仓库是指托管在网络上的项目仓库,现在互联网上有很多项目托管平台,比如github.gitlab等.为了不公开自己项目代码,可以在自己的服务器上搭建自己的项目仓库,最常见的是搭建GitLa ...
随机推荐
- [c++] 子类构造函数中有默认参数
子类创建对象时调用父类的构造函数: 1 #include <iostream> 2 using namespace std; 3 class Base 4 { 5 public: 6 Ba ...
- x小结:certutil -hashfile D:\1.exe MD5
在Win7上,MD5不要使用小写,在Win10上没有这个问题 x小结:certutil -hashfile D:\1.exe MD5certutil -hashfile D:\1.exe SHA1ce ...
- 史上最全(全平台)docker安装方法!
代码狂魔 32019.01.05 22:46:46字数 4,426阅读 9,949 image.png 2017年2月8日,docker更新到1.13.1(更新日志),此后又分为了docker CE( ...
- 054.Python之Ubuntu安装Pycharm
在学习Django的时候,开始使用的是centos,但是在做的时候,有一个错误,换一个ubuntu环境,安装一个pycharm进行学习开发 1. 下载PyCharm安装包 进入官网下载包 下载后 2. ...
- 012.Kubernetes的configmap和secret配置
使用configmap对多有的配置文件进行统一管理 一 configmap配置管理 1.1 检查mysql的配置 [root@docker-server1 storage]# kubectl get ...
- Spring IoC容器 XML 配置与加载
IoC 容器 XML 配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu ...
- C语言进阶日志二
1.一个功能模块最好使用一个文件夹包含 2.基本就需要几个文件,比如定时器取反 LED: bsp_led.c 和 bsp_led.h : 包含你需要的led外设GPIO的初始化代码 led_it.c ...
- Centos7 离线安装python3 Django
安装python 1..下载Python3源码包 下载地址:www.python.org/ftp/python/ 2.安装python前的库环境 yum install gcc patch libff ...
- Stm32高级定时器(转自:luowei_memory)
1 定时器的用途 2 高级定时器框图 3 时基单元 4 通道 1 定时器的用途 已知一个波形求另一个未知波形(信号长度和占空比) 已知波形的信号长度和占空比产生一个相应的波形 增量正交编码器驱动电机获 ...
- 矩阵中的路径 DFS+剪枝
给定一个 m x n 二维字符网格 board 和一个字符串单词 word .如果 word 存在于网格中,返回 true :否则,返回 false . 单词必须按照字母顺序,通过相邻的单元格内的字母 ...