0


git拉取

一:大概流程

1.拉取develop分支的代码
2.自己做一个功能分支,feature-功能,
3.每天拉取一下dev分支的代码,
4.合并到dev分支之前拉取一下dev的代码
5.发起合并请求;

1.先在电脑里配置一个公钥
# 在git bash中输入
ssh-keygen -t rsa -C "1984025881@qq.com" -b 4096

# 查看公钥
 cat ~/.ssh/id_rsa.pub

2.把公钥配置到gitlab自己账户的设置里面

二:gitlab搭建,(查看公钥)

gitlab 安装及汉化

GitLab简介:

GitLab是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。可通过Web界面进行访问公开的或者私人项目。它拥有GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供了一个代码片段收集功能可以轻松实现代码复用。

常用的网站:

官网:The most-comprehensive AI-powered DevSecOps platform | GitLab

国内镜像:Index of /gitlab-ce/yum/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

Gitlab相关操作及说明:

/etc/gitlab/gitlab.rb          #gitlab配置文件
/opt/gitlab                    #gitlab的程序安装目录
/var/opt/gitlab                #gitlab目录数据目录
/var/opt/gitlab/git-data       #存放仓库数据
gitlab-ctl reconfigure         #重新加载配置
gitlab-ctl status              #查看当前gitlab所有服务运行状态
gitlab-ctl stop                #停止gitlab服务
gitlab-ctl stop nginx          #单独停止某个服务
gitlab-ctl tail                #查看所有服务的日志
​
Gitlab的服务构成:
nginx:                 静态web服务器
gitlab-workhorse        轻量级反向代理服务器
logrotate              日志文件管理工具
postgresql             数据库
redis                  缓存数据库
sidekiq                用于在后台执行队列任务(异步执行)

安装gitlab

安装环境:

(1)CentOS 6或者7    (此处使用7)
(2)2G内存(实验)生产(至少4G),不然会很卡
(3)安装包:gitlab-ce-10.2.2-ce
(4)禁用防火墙,关闭selinux

安装步骤:

(1)安装软件

[root@gitlab ~]# yum install -y curl policycoreutils-python openssh-server        #安装依赖
[root@gitlab ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm        #下载软件包
[root@gitlab ~]# rpm -ivh gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm    #安装gitlab

(2)根据安装完成提示界面进行访问URL更改及重新加载配置文件 更改次选项为自己的域名或者IP external_url 'http://gitlab.example.com'

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb      #编辑配置文件  
external_url 'http://192.168.1.21'        #改为自己的IP地址
[root@gitlab ~]# gitlab-ctl reconfigure    #重新加载配置文件

(3)重装完成访问http://192.168.1.21,会首先叫更改密码(root用户),改完后登录。如下界面:

(4)汉化

1、下载汉化补丁
[root@gitlab ~]# git clone https://gitlab.com/xhang/gitlab.git
[root@gitlab ~]# cd gitlab    
2、查看全部分支版本
[root@gitlab ~]# git branch -a
3、对比版本、生成补丁包
[root@gitlab ~]# git diff remotes/origin/10-2-stable remotes/origin/10-2-stable-zh > /tmp/10.2.2-zh.diff
4、停止服务器
[root@gitlab ~]# gitlab-ctl stop
5、打补丁
[root@gitlab ~]# patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < /tmp/10.2.2-zh.diff
6、启动和重新配置
[root@gitlab ~]# gitlab-ctl start
[root@gitlab ~]# gitlab-ctl reconfigure

说明:这里如果使用的同样是gitlab10.2.2,下载汉化较慢的话,可以直接在这里下载10.2.2-zh.diff。提取码:kaiw

汉化完成后再次刷新页面如下

gitlab使用

开启/关闭用户注册功能

gitlab默认是开启注册功能的,在实战时可以直接让学员在此页面注册gitlab账户

image-20210502151555070

但是在企业中,注册功能都是被关闭的

image-20210502151722651

关闭后,管理员可以在用户管理中添加用户信息

image-20210502152015869

创建groups分组(项目经理)

在gitlab中,可以通过分组的概念关联不同团队的人,和不同的项目,同一分组的开发人员可以协作开发共同的项目

通过群组页签 或 设置中的分组页签 都可以实现分组管理

image-20210502152143267

创建分组:

image-20210502152514813

设置分组开发人员及拥有者(项目经理)

image-20210502152727386

在分组内创建仓库(项目经理)

配置SSH秘钥公钥

秘钥生成方式:

# 在git bash中输入
ssh-keygen -t rsa -C "[email protected]" -b 4096
​
# 查看公钥
cat ~/.ssh/id_rsa.pub
​

image-20210723213915799

image-20210723214157416

初始化仓库(项目经理)

准备好统一使用的代码 如:   heima-leadnews128
​
cd heima-leadnews128
git init
git remote add origin [email protected]:hmtt01/heima-leadnews.git
git add .
git commit -m "Initial commit"
git push -u origin master

设置master为保护分支(项目经理)

如果只用master分支

版本不细致出现问题不方便回滚

需要频繁的pull push

出现问题会对其它人直接造成影响

image-20210723215344505

设置develop开发分支(项目经理)

在gitlab中将开发分支 设置成只有拥有者有修改权限, 其它组员仅有合并权限

image-20210723215015680

开发人员SSH配置 (研发人员)

开发人员拉取develop分支 (研发人员)

git clone -b develop git@121.37.185.117:leadnews-group8/heima-leadnews.git

git clone -b develop git@121.37.185.117:leadnews-group8/leadnews-front.git

使用idea打开clone过来的工程

修改对应的setting中的maven配置 ,改为自己的

新增 feature_功能名称 分支(研发人员)

git checkout -b feature/功能名称

也可以在idea中新建分支

CODING。。。。。。。(研发人员)

功能开发时, 本地的commit频率要高些 方便回滚

开发完一个小阶段 推送到远程 feature_功能分支 (防止本地代码丢失)

功能开发完毕 拉取develop分支(不推送)(研发人员)

全部开发完毕后, 需要先拉取develop分支,因为在此期间有可能develop分支已经发生变动

拉取前 先将变更全部commit

git pull origin develop

idea中操作也可以

拉取时 如果develop分支和本地分支有冲突 会提示merge操作

merge 合并 及 冲突解决

自测完毕推送到远程 feature/功能名称分支

推送到远程指定分支后, 在gitlab中创建合并请求 并指定 组长进行代码评审

组长评审没问题后 选择合并请求 这样 该功能的代码 被合并到develop分支中

合并成功 可以删除该 feature功能分支

全部功能合并完成后,组长基于 develop分支 进行测试 如果没问题 最终将develop分支 合并到 master分支

基于master分支 创建jenkins构建任务

三:分支:

Git主要优点有 分布式存储 , 本地仓库包含了远程仓库的所有内容 . 安全性高 , 远程仓库文件丢失了也不怕 优秀的分支模型 , 创建/合并分支非常的方便 方便快速 , 由于代码本地都有存储 , 所以从远程拉取和分支合并时都非常快捷 当分支过多时 , 如何管理这些分支呢 ? 我们团队采用了Git Flow的模式

GitFlow的常用分支

master 主分支 , 产品的功能全部实现后 , 最终在master分支对外发布 该分支为只读唯一分支 , 只能从其他分支(release/hotfix)合并 , 不能在此分支修改 另外所有在master分支的推送应该打标签做记录,方便追溯 例如release合并到master , 或hotfix合并到master

develop 主开发分支 , 基于master分支克隆 包含所有要发布到下一个release的代码 该分支为只读唯一分支 , 只能从其他分支合并 feature功能分支完成 , 合并到develop(不推送) develop拉取release分支 , 提测 release/hotfix 分支上线完毕 , 合并到develop并推送

feature 功能开发分支 , 基于develop分支克隆 , 主要用于新需求新功能的开发 功能开发完毕后合到develop分支(未正式上线之前不推送到远程中央仓库!!!) feature分支可同时存在多个 , 用于团队中多个功能同时开发 , 属于临时分支 , 功能完成后可选删除

release 测试分支 , 基于feature分支合并到develop之后 , 从develop分支克隆 主要用于提交给测试人员进行功能测试 , 测试过程中发现的BUG在本分支进行修复 , 修复完成上线后合并到develop/master分支并推送(完成功能) , 打Tag 属于临时分支 , 功能上线后可选删除

hotfix 补丁分支 , 基于master分支克隆 , 主要用于对线上的版本进行BUG修复 修复完毕后合并到develop/master分支并推送 , 打Tag 属于临时分支 , 补丁修复上线后可选删除 所有hotfix分支的修改会进入到下一个release

主要工作流程

1 . 初始化项目为gitflow , 默认创建master分支 , 然后从master拉取第一个develop分支

2 . 从develop拉取feature分支进行编码开发(多个开发人员拉取多个feature同时进行并行开发 , 互不影响)

3 . feature分支完成后 , 合并到develop(不推送 , feature功能完成还未提测 , 推送后会影响其他功能分支的开发) 合并feature到develop , 可以选择删除当前feature , 也可以不删除 . 但当前feature就不可更改了 , 必须从release分支继续编码修改

4 . 从develop拉取release分支进行提测 , 提测过程中在release分支上修改BUG

5 . release分支上线后 , 合并release分支到develop/master并推送 合并之后 , 可选删除当前release分支 , 若不删除 , 则当前release不可修改 . 线上有问题也必须从master拉取hotfix分支进行修改

6 . 上线之后若发现线上BUG , 从master拉取hotfix进行BUG修改

7 . hotfix通过测试上线后 , 合并hotfix分支到develop/master并推送 合并之后 , 可选删除当前hostfix , 若不删除 , 则当前hotfix不可修改 , 若补丁未修复 , 需要从master拉取新的hotfix继续修改

8 . 当进行一个feature时 , 若develop分支有变动 , 如其他开发人员完成功能并上线 , 则需要将完成的功能合并到自己分支上 即合并develop到当前feature分支 9 . 当进行一个release分支时 , 若develop分支有变动 , 如其他开发人员完成功能并上线 , 则需要将完成的功能合并到自己分支上 即合并develop到当前release分支 (!!! 因为当前release分支通过测试后会发布到线上 , 如果不合并最新的develop分支 , 就会发生丢代码的情况)

image-20210611222650164

gitlab + gitflow 演示视频

GitLab与GitFlow的简单使用_哔哩哔哩_bilibili

标签: git

本文转载自: https://blog.csdn.net/z17720852361/article/details/143982323
版权归原作者 z17720852361 所有, 如有侵权,请联系我们删除。

“git拉取”的评论:

还没有评论