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)的更多相关文章

  1. 4、git和gitlab的配置(1)

    4.0.服务器说明: 服务器名称 ip地址 controller-node1 172.16.1.90 4.1.git介绍: 1.git分布式图: 2.git区域: 3.四种状态: 上面的操作在工作目录 ...

  2. win10下git与gitlab安装与文件上传

    目前了解到的版本管理工具有三种:gitlab  GitHub 和 码云 个人感觉 gitlab 在公司用的较多 便于协同办公   GitHub各种资源有很多,适合个人使用   码云是中文版 便于入门 ...

  3. git安装以及gitlib配置

    安装Git:详见http://www.cnblogs.com/xiuxingzhe/p/9300905.html 开通gitlab(开通需要咨询所在公司的gitlab管理员)账号后,本地Git仓库和g ...

  4. Gerrit与Gitlab同步配置replication&其他配置

    一.Gerrit与Gitlab同步配置 当配置好gerrit环境后,还需要与现有gitlab库进行同步配置,否则会影响现有开发与打包流程. 1.安装gerrit replication插件 unzip ...

  5. 【Git】 GitLab简单使用

    本例介绍简单实用GitLab,安装请参照[Git] GitLab服务器社区版安装与配置 1.用户和组的管理 a.创建组,在首页点击Create a group b.创建用户,在首页点击Add peop ...

  6. Jenkins中使用GitLab的配置

    1. 概述 在Jenkins中从GitLab上拉取代码进行打包或测试. 2. 安装 Jenkins和GitLab默认已经安装好,安装过程此处不再赘述. 在Jenkins上安装Git和Gitlab插件, ...

  7. Git管理多个SSH密钥,Git多帐号配置

    版权声明:转载须标明本文转自严振杰的博客 https://blog.csdn.net/yanzhenjie1003/article/details/69487932版权声明:转载必须注明本文转自严振杰 ...

  8. 本地docker搭建gitlab, 并配置ldap认证

    基于Docker在Mac OS X系统中的部署和设置GitLab的具体过程如下:   1. 安装Docker for Mac (参见https://docs.docker.com/docker-for ...

  9. Git连接GitLab远程仓库

    1.简介 远程仓库是指托管在网络上的项目仓库,现在互联网上有很多项目托管平台,比如github.gitlab等.为了不公开自己项目代码,可以在自己的服务器上搭建自己的项目仓库,最常见的是搭建GitLa ...

随机推荐

  1. ruby基础(三)

    类和模块 1.类 类是面向对象中一个重要的术语.我们可以把类看作是对象的抽象, 所有的这类对象都有这些特征.而对象则是类的具体实现,按照类的要求创建的 对象就是该类的对象.类就像对象的雏形一样,决定了 ...

  2. 【山外笔记-工具框架】SVN版本控制系统

    [山外笔记-框架工具]SVN版本控制系统 学习资料: 1.本文打印版下载地址:[山外笔记-框架工具笔记]SVN版本控制工具-打印版.pdf 2.SVN和TortoiseSVN在线中文文档:http:/ ...

  3. keepalived的脑裂问题与解决

    Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工 ...

  4. strcpy和memcpy的区别-(转自stone Jin)

    strcpy和memcpy都是标准C库函数,它们有下面的特点.strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. 已知strcpy函 ...

  5. Day029 JDK8中新日期和时间API (四)

    JDK8中新日期和时间API 其他的一些API ZoneId:该类中包含了所有的时区信息,一个时区的ID,如 Europe/Paris ZonedDateTime:一个在ISO-8601日历系统时区的 ...

  6. Autofac 集成测试 在 ConfigureContainer 之后进行 Mock 注入

    在使用 Autofac 框架进行开发后,编写集成测试时,需要用 Mock 的用于测试的模拟的类型去代替容器里面已注入的实际类型,也就需要在 Autofac 完全收集完成之后,再次注入模拟的对象进行覆盖 ...

  7. Google Hacking 搜索引擎攻击与防范

    Google Hacking,有时也会被称为 Google dorking,是一种利用谷歌搜索的高级使用方式进行信息收集的技术.这个概念最早在2000年由黑客 Johnny Long 提出并推广,一系 ...

  8. Django框架中logging的使用

    Django框架中logging的使用 日志是我们在项目开发中必不可少的一个环节,Python中内置的logging已经足够优秀到可以直接在项目中使用. 本文介绍了如何在DJango项目中配置日志. ...

  9. GO语言复合类型02---数组

    package main import "fmt" /* 固定长度.固定类型的数据容器 */ /*数组的声明*/ func main031() { //var array [5]i ...

  10. C# 将DLL制作CAB包并在浏览器下载,自动安装。(Activex)(包括ie打开cab包一直弹出用户账户控制,确定之后无反应的解决办法。)

    制作Activex程序网上有很多方法我就不说了,我的业务主要做的就是将DLL打包成CAB供浏览器下载. 下面制作证书,以及制作cab包需要用到一些工具.我将工具包上传到自己的博客园里了,以供大家下载. ...