项目实战Git团队操作_图形化版本

文章目录

    • 一、分支思路
      • 1. Git命令常用理解记忆
      • 2. 分支换分规则
      • 3. 线上发布准备
    • 二、 实战前期准备
      • 2.1. 在远程仓库创建kernel_system项目
      • 2.2. 将远程仓库克隆到本地
      • 2.3. 本地准备操作
    • 三、场景实战
      • 模拟提交
      • 3.1. Git合并某个分支的某/多次提交到指定分支
      • 3.2. Git合并分支
      • 3.3. 回滚/撤销指定某一/多次提交(建议使用,雁过留声、人过留名)
      • 3.4. Git合并冲突
      • 3.5. Git删除中间某一/多次提交记录和提交的文件
      • 3.6. 撤销回滚未未添加至暂存区文件
      • 3.7. 回退到以前的指定版本,之后提交的记录和提交的文件全部删除

一、分支思路

1. Git命令常用理解记忆

1.初始化仓库用 git init
2.提交用git commit -m"提交说明"
3.推送远程用git push origin 本地分支名
4.拉取项目用 git clone 项目地址
5.回退文件人2种:未提交用git checkout提交后的用git revert
6.删除姿势有2步:删除指定提交和提交文件用git rebase 回退到之前的指定提交历史节点,删除之后的提交记录和提交文件用:git reset --hard
7.更新项目用git pull
8.和远程仓库建立连接:git remote add origin 远程项目地址

2. 分支换分规则

企业git仓库搭建思路:
一般企业根据不同的环境划分为不同的分支,常见的分支划分策略如下:

分支名说明备注
local本地开发环境本地开发+单元测试
dev技术开发环境技术测试,有专门的测试人员
test回归测试环境模拟生产线上环境预测试
uat压测环境测试服务器瓶颈
prod(master)生产环境线上已发布,正在正式运行的项目

3. 线上发布准备

一般正式环境发布之前会做这几件事:

分支名说明备注
拆板把与自己无关的版本拆除调
合版核对自己发布文件版本
发布将核对无误的版本发布到测试环境
技术测试测试发布后的程序,有问题让开发协助修改,没问题发布回归测试环境
回归测试测试技术环境没问题的功能点,模拟生产测试(此环境和生产环境一样的)
上线发布回归测试环境,测试成功的功能点

二、 实战前期准备

1.在远程仓库创建kernel_system项目
2.将远程仓库克隆到本地
3.初始化项目,添加一个README.txt文件项目说明
4.分别基于master分支,创建local、dev、test分支,分别代表不同的开发或者测试环境,开发/测试/发布只需要切换分支即可。
分支对照表:
master-生产
local-本地开发
dev-技术测试
test-回归测试分支
5.将本地创建的local、dev、test分支推送至远程的版本库

2.1. 在远程仓库创建kernel_system项目

在这里插入图片描述
在这里插入图片描述

2.2. 将远程仓库克隆到本地

在这里插入图片描述

git clone git@gitee.com:gb_90/kernel_system.git

在这里插入图片描述

2.3. 本地准备操作

实现流程:
3.初始化项目,添加一个README.txt文件项目说明
4.分别基于master分支,创建local、dev、test分支,分别代表不同的开发或者测试环境,开发/测试/发布只需要切换分支即可。
分支对照表:
master-生产
local-本地开发
dev-技术测试
test-回归测试分支
5.将本地创建的local、dev、test分支推送至远程的版本库
#master分支操作
cd kernel_system
echo "project desc" >>README.TXT
vim README.TXT
添加内容:
master 分支线上发布分支
git push origin master#local分支操作
git checkout master
git checkout -b local
vim README.TXT
添加内容:
local 分支本地开发分支
git push origin local#dev分支操作
git checkout master
git checkout -b dev
vim README.TXT
添加内容:
dev 分支技术测试分支
git push origin dev#test分支操作
git checkout master
git checkout -b test
vim README.TXT
添加内容:
test 分支回归测试分支
git push origin test

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、场景实战

模拟提交

zhangsan提交3次,模拟做了3个功能点,lisi提交2次模拟做了2个功能点,wangwu提交2次模拟做了2个功能点

#lcoal 本地分支
#zhangsan 提交3次
git checkout local
echo "1" >> a.txt
git add a.txt
git commit -m"zhangsan 第1次提交"
echo "2" >> b.txt
git add b.txt
git commit -m"zhangsan 第2次提交"
echo "3" >> c.txt
git add c.txt
git commit -m"zhangsan 第3次提交"#lisi 提交2次
git checkout local
echo "1" >> 1.txt
git add 1.txt
git commit -m"lisi第1次提交"
echo "2" >> 2.txt
git add 2.txt
git commit -m"lisi第2次提交"#wangwu 提交2次
git checkout local
echo "1" >> h.txt
git add h.txt
git commit -m"wangwu 第1次提交"
echo "2" >> j.txt
git add j.txt
git commit -m"wangwu 第2次提交"查看所有的提交记录:
git log --pretty=oneline --abbrev-commit

在这里插入图片描述

3.1. Git合并某个分支的某/多次提交到指定分支

紧急发布变更:
zhangsan的3个功能点和lisi的2个功能点都要发布测试,
wangwu的2个功能点暂时不发布。明确要做的事情:
zhangsan和lisi的5个功能点从local分支要发布到dev分支去申请技术测试。应该如何操作呢?
方案1((建议使用,这样不会出错):
正常流程,在dev分支,将zhangsan的3次提交和lisi的2次提交,合并到dev分支即可。需要合并5次提交,因为每一次提交就是一个功能点,一条合并提交命令即可。

合并前截图:
在这里插入图片描述

方案1:
在lcoal分支上查看所有的提交记录,等会我们会用到提交<commitId>进行合并提交处理
git log --pretty=oneline --abbrev-commit
git checkout dev
ls
# Git合并某个分支的某/多次提交到指定分支
git cherry-pick 26844fb 9abaf33 3e46869 a03beb1 9240aef

在这里插入图片描述

3.2. Git合并分支

前提:基于dev技术测试环境已经把zhangsan、lisi、wangwu的功能测试没问题
大版本发布变更:
zhangsan的3个功能点、lisi的2个功能点以及wangwu的2个功能点都要发布回归测试。明确要做的事情:
zhangsan和lisi的5个功能点从local分支要发布到dev分支去申请技术测试。应该如何操作呢?
方案1((建议使用,这样不会出错):
正常流程,在dev分支,将zhangsan的3次提交和lisi的2次提交,合并到dev分支即可。需要合并5次提交,因为每一次提交就是一个功能点,一条合并提交命令即可。
案例演示:
这里刚才已经dev上有zhangsan、lisi的的5个功能点了,只要把wangwu的2个功能点,从local分支合并到dev即可
git cherry-pick a52cf77 de17f44
在dev分支上查看所有的提交记录,等会我们会用到提交<commitId>进行合并提交处理
git log --pretty=oneline --abbrev-commit
切换到test分支,把dev分支上zhangsan、lisi、wangwu的7次提交合并到test分支
git checkout test
git cherry-pick 6b0aa2f 8bbaf28 bf697f7 877d827 08d24a0 4297a8d efbaa86

在这里插入图片描述
在这里插入图片描述

方案2:
前提:以前dev分支和test代码都是一样的,只是在dev分支上新增的这7次提交,在test分支是没有的。
在这种场景下,直接合并分支即可,换言之,把dev分支合并到test'分支
git checkout test
git merge dev

在这里插入图片描述

3.3. 回滚/撤销指定某一/多次提交(建议使用,雁过留声、人过留名)

  • 回滚/撤销指定某一/多次提交(建议使用,雁过留声、人过留名)
  • 撤销回滚已经提交的文件
背景:在dev分支上,zhangsan、lisi、wangwu一共有7次提交。但是,在打包
编译的时候发现,zhangsan、lisi、wangwu将在本地测试好的代码从local分
支合并到dev分支后,编译出现错误,经过查看由于wangwu同事在我不知情的情
况下,由于wangwu的2次错误提交导致的。因此,和wangwu说明zhangsan、lisi
的功能属于紧急发布着急上线,于是,在和wangwu协商后,决定将wangwu的2次
错误提交记录进行回滚/撤销。待zhangsan、lisi他们功能上线后,wangwu再将
2次错误的提交在local修改后,重新合并到dev分支,重新编译打包,进行发布
技术测试环境。
#执行原则:只要撤销C提交修改即可
#1.找到要回滚/撤销的提交的<commitid>
git log --pretty=oneline --abbrev-commit
#2.撤销wangwu的4297a8d efbaa86 提交
git revert 4297a8d efbaa86
执行上面命令后,会进入2次命令窗口(提交记录/1),让你添加回滚指定提交的简要说明,默认,按esc :wq保存即可
回滚之后,可以看到wangwu的2次提交(4297a8d efbaa86)记录还有,但是,2次提交文件都回滚了(从dev分支消失了)。
同步远程分支
git push origin dev

在这里插入图片描述

3.4. Git合并冲突

git默认自动帮我们合并的,但是也是有前提的。
假设:
在dev分支上有一个README.TXT文件,内容如下:
企业项目实战Git团队操作
dev    分支 技术测试环境在test分支上有一个README.TXT文件,内容如下:
企业项目实战Git团队操作
test   分支 回归测试分支如果这个文件的内容,都不在统一行,git会自动帮我们冲突合并。但是假设:
dev分支上的README.TXT文件的“dev    分支 技术测试环境” 这句话在第2行
test分支上的README.TXT文件的“test   分支 回归测试分支” 这句话README.TXT文件也在第2行
在test分支执行git merge dev,这样就会出现版本冲突,如果不显示,你在执行切换分支操作时就是提示你。如下:
Administrator@PC-201911062145 MINGW64 ~/Desktop/kernel_system (test|MERGING)
$ git checkout dev
error: you need to resolve your current index first
README.TXT: needs merge

解决方案:

解决冲突即可:vim README.TXT
编辑前内容如下:
企业项目实战Git团队操作
master 分支 线上发布分支
<<<<<<< HEAD
test   分支 回归测试分支
=======
dev    分支 技术测试环境
>>>>>>> dev有3种解决方案
方案1:
dev那句话和test那句话 都保存
方案2:
删除dev那句话保存test那句话
方案3:
删除test那句话保存dev那句话这个就要根据实际需求而言了,这里我选择方案1(都保存)进行演示:
解决冲突后文件的内容如下:
企业项目实战Git团队操作
master 分支 线上发布分支
test   分支 回归测试分支
dev    分支 技术测试环境git add README.TXT
git commit -m"merge dev" 

3.5. Git删除中间某一/多次提交记录和提交的文件

  • Git删除中间某一/多次提交记录和提交的文件
    (明确风险后,执行操作,这次作用于特殊情况下)
代码更新发现编译出错,后来发现其他人的一次代码提交导致的,并且修改量很大,不好恢复成原来的,就想把这笔提交删除掉,不影响工作。
具体步骤:
#1.首先git log查看提交记录,找到出错的前一笔提交的commit_id
#2.用命令git rebase -i commit_id ,查找提交记录
#3.将出错那笔提交的pick改为drop
#4.Esc,:wq
#5.同步远程仓库(注释本地和远程文件及提交记录是不一样的,在明确风险的情况下,因此采用强退)
git push -u -f origin master
完成!
案例浮现:
背景:在test分支上,zhangsan、lisi、wangwu一共有7次提交。但是,在打包
编译的时候发现,zhangsan、lisi、wangwu将在本地测试好的代码从local分
支合并到dev分支后,编译出现错误,经过查看由于wangwu同事在我不知情的情
况下,由于wangwu的2次错误提交导致的。因此,和wangwu说明zhangsan、lisi
的功能属于紧急发布着急上线,于是,在和wangwu协商后,决定将wangwu的2次
错误提交记录和提交的文件进行删除。待zhangsan、lisi他们功能上线后,wangwu再将
2次错误的提交在local修改后,重新合并到dev分支,重新编译打包,进行发布
技术测试环境。
git checkout test
#找到删除的指定提交<commitid>
git log --pretty=oneline --abbrev-commit
git rebase -i 8743310 

在这里插入图片描述
在这里插入图片描述

3.6. 撤销回滚未未添加至暂存区文件

撤销回滚未未添加至暂存区都使用 git checkout
撤销工作区已经修改但是尚未添加至暂存区的文件恢复
git checkout .
如果,只想恢复a.js
git checkout a.js
这样就可以恢复到修改前之前的a.js的状态

3.7. 回退到以前的指定版本,之后提交的记录和提交的文件全部删除

回退到以前的指定版本,之后提交的记录和提交的文件全部删除

git reset --hard 指定回退的提交的<commitid>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么程序员总是打扮成这样一幅鬼样子

1几千年来&#xff0c;时尚像病毒一样不断进化&#xff0c;横扫世界。它遇神杀神&#xff0c;遇佛杀佛。遇到程序员后&#xff0c;含羞自尽。因为程序员是时尚休止符。因为他们习惯以不变应万变。夏季三大件&#xff1a;格子衫沙滩裤人字拖。冬季三大件&#xff1a;冲锋衣牛仔裤…

基础计算机b卷,计算机应用基础B卷.doc

计算机应用基础B卷.doc (6页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;9.9 积分&#xfeff;《计算机应用基础》模拟试卷B (闭卷)一、单项选择题(本大题共40个小题&#xff0c;每题2分&#xff0…

阿里云大数据总监:计算让城市更智能

10月25日&#xff0c;2018中国计算机大会上举办了主题是智慧城市下个十年&#xff1a;智在“数”还是“术”的技术论坛。目前&#xff0c;城市已经具备了丰富多样的大数据积累&#xff0c;成体系的数据管理标准&#xff0c;开放自由的数据流动环境等重要基础&#xff0c;但对于…

多维度创新打造领先阿里云技术生态

10月26日&#xff0c;2018中国计算机大会上举办了主题是“云计算生态与发展”的技术论坛。论坛上&#xff0c;阿里云技术战略架构师陈绪博士从构建目标、构建基石、构建要点三个方面详细陈述了阿里云开放的技术生态。目前阿里云正在全力打造一个由阿里云引导、驱动、赋能的多赢…

Facebook陷入史上最大危机;华为5G设备欧洲大卖,美国指责欧盟;红帽宣布OpenShift可用于AWS中国……...

关注并标星星CSDN云计算 速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周两次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go新加坡加入微信计划 &#xff08;图片来源网络&am…

阿里云高级总监谈超大规模超高性能分布式快存储系统

新型硬件&#xff08;如NVRAM、RDMA、GPU/TPU等&#xff09;及其构建的异构复杂环境&#xff0c;与既有硬件环境的巨大差异&#xff0c;导致传统的算法、数据结构甚至是涉及原则和经验法则等难以为继&#xff0c;对计算智能与大数据处理带来新的挑战和机遇。 10月27日下午&…

最新量子通信芯片曝光!大小仅为现有装置的千分之一

近日&#xff0c;新加坡南洋理工大学&#xff08;NTU-Singapore&#xff09;的Liu Ai Qun教授和Kwek Leong Chuan副教授领导的研究小组在《自然光子学》发表一项令人吃惊的研究成果&#xff1a;他们研究出一种量子通信芯片&#xff0c;大小约为3mm&#xff0c;其体积是目前量子…

如何提高阿里云上应用的可用性(一)

如今&#xff0c;开发并上线一款应用十分方便。因为云计算提供了从最基础的计算资源如服务器网络、数据库服务、中间件PaaS平台到各种应用支撑的云管理服务&#xff0c;同时开源社区的迅猛发展也提供了从数据库、缓存到应用全生命流程中各种必须的组件&#xff0c;所以越来越多…

运营商服务器系统,浪潮服务器助力运营商三大支撑系统上云

【IT168 资讯】继浙江移动、广东移动、福建电信业务系统云化应用改造项目后&#xff0c;浪潮服务器再次中标河南某运营商云资源池项目&#xff0c;中标金额达三千多万。三百多台浪潮双路、四路服务器用于支撑该运营商的BOSS计费系统、CRM系统、经营分析系统、网管应用系统、OA、…

如何提高阿里云上应用的可用性(二)

在单体应用时代&#xff0c;最大的问题是如何解决数据库瓶颈&#xff0c;而微服务之下&#xff0c;一个大应用被拆分成了几十个甚至上百个微服务&#xff0c;数据访问的压力被传导到了服务之间的网络&#xff0c;服务强弱依赖&#xff0c;服务雪崩等各种问题随之而来&#xff0…

双11终于来了,你盖楼了吗?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | CDA数据分析师责编 | 阿秃双11就要到了&#xff0c;今天就带大家解读一下&#xff0c;在这场全面购物节背后都有哪些意想不到的有趣数据。一年一度的购物狂欢节双11又要到了&#xff0c;从2009年双11的诞生到今年&#xff0c…

Hystrix之外健壮微服务的新选择:Sentinel 发布首个生产版本

Sentinel 阿里中间件团队开源的&#xff0c;面向分布式服务架构的轻量级流量控制框架&#xff0c;主要以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性。 近日&#xff0c;阿里中间件开源组件Sentinel 发布首个官方推荐可生…

服务器系统功能描述,Hadoop mapreduce核心功能描述

在任务执行期间&#xff0c;应用程序在写文件时可以利用这个特性&#xff0c;比如 通过 FileOutputFormat.getWorkOutputPath()获得${mapred.work.output.dir}目录&#xff0c; 并在其下创建任意任务执行时所需的side-file&#xff0c;框架在任务尝试成功时会马上移动这些文件&…

腾讯Techo开发者大会揭晓云存储发展趋向:高性能、高可用、高性价比

产业数字化转型过程中产生着比过去任何一个时代都多的数据。在这样的背景下&#xff0c;数据存储技术应该怎么发展&#xff1f;11月7日&#xff0c;在腾讯Techo开发者大会上&#xff0c;来自科研领域的专家和腾讯云存储业务的工程师们共同揭开了云存储的发展趋势。 据IDC预测&…

2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量

双11快乐&#xff0c;该买的应该都已经买到了吧&#xff1f; 跟大家说个暖心事儿&#xff1a;今天&#xff0c;阿里云以天猫双11之子派大星星星l的名义&#xff0c;在公安部打拐办团圆项目、缘梦基金、宝贝回家等公益组织的鼎力支持下&#xff0c;将失踪儿童的信息放在这个网页…

重磅!云+X 案例征集正式启动啦!

云计算的概念已经悄然走过十余年&#xff0c;尽管我们对于它的关注&#xff0c;没有像人工智能、物联网、区块链那么密切&#xff0c;但是云服务在我们的生活与工作中早已无处不在。越来越多的新兴技术高调出现在大众的面前&#xff0c;唯有云计算仍以最低调的态度做着最实用的…

Nacos 发布0.3.0版本,迄今为止最好看的版本

近日&#xff0c;Nacos 0.3.0 正式发布&#xff0c;该版本旨在增强对服务列表&#xff0c;健康状态管理&#xff0c;服务治理&#xff0c;分布式配置管理等方面的管控能力&#xff0c;以便进一步帮助用户降低管理微服务应用架构的成本&#xff0c;在第一版的 UI 功能规划中&…

定义快捷代码_nodepad++代码编辑器替代工具整理

概述代码编辑工具选择Visual Studio CodeVS vode特点&#xff1a;开源&#xff0c;免费&#xff1b;自定义配置集成git智能提示强大支持各种文件格式(html/jade/css/less/sass/xml)调试功能强大各种方便的快捷键强大的插件扩展EditPlus默认支持HTML、CSS、PHP、ASP、Perl、C/C、…

王者荣耀转移完成会显示我的服务器吗,王者荣耀账号多久能转移完

4月29日&#xff0c;王者荣耀已经发布跨系统角色转移测试名额&#xff0c;每日限量&#xff0c;各位召唤师也都蠢蠢欲动&#xff0c;期待已久的功能终于上线啦&#xff0c;感兴趣的小伙伴快跟着超分手游网的小编一起去了解一下吧&#xff01;王者荣耀账号多久能转移完申请提交后…

华为双11发 20 亿奖金!?

戳蓝字“CSDN云计算”关注我们哦&#xff01;11 月 11 日当天&#xff0c;有华为员工在社交网络上爆料称&#xff0c;华为双 11 发放两份特别奖金&#xff0c;一份是阳关普照奖&#xff0c;另外一份是 20 亿奖金。该爆料称&#xff1a;“双 11&#xff0c;华为发放两份特别奖金…