ToB企服应用市场:ToB评测及商务社交产业平台

标题: git拉取 [打印本页]

作者: 万万哇    时间: 2025-1-4 14:05
标题: 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相关操纵及说明:
  1. /etc/gitlab/gitlab.rb          #gitlab配置文件
  2. /opt/gitlab                    #gitlab的程序安装目录
  3. /var/opt/gitlab                #gitlab目录数据目录
  4. /var/opt/gitlab/git-data       #存放仓库数据
  5. gitlab-ctl reconfigure         #重新加载配置
  6. gitlab-ctl status              #查看当前gitlab所有服务运行状态
  7. gitlab-ctl stop                #停止gitlab服务
  8. gitlab-ctl stop nginx          #单独停止某个服务
  9. gitlab-ctl tail                #查看所有服务的日志
  10. Gitlab的服务构成:
  11. nginx:                 静态web服务器
  12. gitlab-workhorse        轻量级反向代理服务器
  13. logrotate              日志文件管理工具
  14. postgresql             数据库
  15. redis                  缓存数据库
  16. sidekiq                用于在后台执行队列任务(异步执行)
复制代码
安装gitlab

安装情况:
  1. (1)CentOS 6或者7    (此处使用7)
  2. (2)2G内存(实验)生产(至少4G),不然会很卡
  3. (3)安装包:gitlab-ce-10.2.2-ce
  4. (4)禁用防火墙,关闭selinux
复制代码
安装步调:
(1)安装软件
  1. [root@gitlab ~]# yum install -y curl policycoreutils-python openssh-server        #安装依赖
  2. [root@gitlab ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm        #下载软件包
  3. [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'
  1. [root@gitlab ~]# vim /etc/gitlab/gitlab.rb      #编辑配置文件  
  2. external_url 'http://192.168.1.21'        #改为自己的IP地址
  3. [root@gitlab ~]# gitlab-ctl reconfigure    #重新加载配置文件
复制代码
(3)重装完成访问http://192.168.1.21,会起首叫更改密码(root用户),改完后登录。如下界面:

(4)汉化
  1. 1、下载汉化补丁
  2. [root@gitlab ~]# git clone https://gitlab.com/xhang/gitlab.git
  3. [root@gitlab ~]# cd gitlab    
  4. 2、查看全部分支版本
  5. [root@gitlab ~]# git branch -a
  6. 3、对比版本、生成补丁包
  7. [root@gitlab ~]# git diff remotes/origin/10-2-stable remotes/origin/10-2-stable-zh > /tmp/10.2.2-zh.diff
  8. 4、停止服务器
  9. [root@gitlab ~]# gitlab-ctl stop
  10. 5、打补丁
  11. [root@gitlab ~]# patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < /tmp/10.2.2-zh.diff
  12. 6、启动和重新配置
  13. [root@gitlab ~]# gitlab-ctl start
  14. [root@gitlab ~]# gitlab-ctl reconfigure
复制代码
说明:这里如果使用的同样是gitlab10.2.2,下载汉化较慢的话,可以直接在这里下载10.2.2-zh.diff。提取码:kaiw
汉化完成后再次刷新页面如下


gitlab使用

开启/关闭用户注册功能

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

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

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

创建groups分组(项目经理)

在gitlab中,可以通太过组的概念关联不同团队的人,和不同的项目,同一分组的开发人员可以协作开发共同的项目
通过群组页签 或 设置中的分组页签 都可以实现分组管理

创建分组:

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


在分组内创建堆栈(项目经理)


配置SSH秘钥公钥

秘钥生成方式:

  1. # 在git bash中输入
  2. ssh-keygen -t rsa -C "1984025881@qq.com" -b 4096
  3. # 查看公钥
  4. cat ~/.ssh/id_rsa.pub
复制代码




初始化堆栈(项目经理)

  1. 准备好统一使用的代码 如:   heima-leadnews128
  2. cd heima-leadnews128
  3. git init
  4. git remote add origin git@101.132.67.210:hmtt01/heima-leadnews.git
  5. git add .
  6. git commit -m "Initial commit"
  7. git push -u origin master
复制代码
设置master为保护分支(项目经理)

如果只用master分支
版本不细致出现问题不方便回滚
需要频繁的pull push
出现问题会对其它人直接造成影响

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

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

开发人员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分支 , 就会发生丢代码的情况)


gitlab + gitflow 演示视频
GitLab与GitFlow的简单使用_哔哩哔哩_bilibili

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4