当前位置: 首页 > news >正文

Git如何操作本地分支仓库?

基本使用TortoiseGit 操作本地仓库(分支) 

分支的概念

几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,避免影响开发主线。多线程开发,可以同时开启多个任务的开发,多个任务之间互不影响。

为何要使用分支

先看单线程开发

思考如下现象

    10月1日 业务部门提出需求 : 今年元旦3天做2个促销活动。

  • 12月31 号上线活动1
  • 1月4号上线活动2 ,同时要求撤销活动1

    你所在部门领导为了保证能顺利完成,要求 11月15号完成上述连个功能的开发工作。

此时作为开发人员:我要面临两个文件,活动1 的代码,即要存在(12月31 要用)又要不存在(1月4 号要求删除),我们怎么做?

显然比较棘手,如果使用分支(可以理解为将代码复制一份)将很好解决。

创建分支

到现在为止,我们一直使用的时主分支(master)。

在主分支上操作创建分支

分支的查看切换

查看分支

查看版本分支图,此时我们看到有两个分支。

当然,我们可以创建多个分支。

可以看到多个分支的图形

切换分支

右键--> 检出

分支的合并与删除

合并

我们将代码切换到分支1,然后写属于需求1 的代码并提交。

当我们把需求1 开发完毕如何把需求1 的代码合并到主分支呢?

  • 切换到 主版本
  • 右键 合并即可将需求1 写的代码合并至主分支

此时我们看到代码自动合并到了master分支。

删除分支

冲突的处理​ 
冲突的概念

现象演示   

开发人员A 开发需求1,开发了一个工具类 MathUtil,里面第一行写了一个方法 add(int [] args)。

同时开发人员B 开发需求2,开发了一个工具类 MathUtil,里面第一行写了一个方法 add(int a int b)。

他们在互相不知道对方需求的情况下同时提交了代码到自己的分支。

思考此时如果我们把需求1 和需求2 同时都合并到主分支上,主分支的 工具类 MathUtil 的第一行应该使用谁的代码?

此时主分支是不能智能判断第一行使用谁的代码,合并时会报错,我们叫做冲突。

如何处理冲突

分析一下冲突的原因:

    开发人员之间彼此没有沟通导致的同一个时间节点修改了同一个地方的代码,合并是冲突。

思考:

    我们能直接把某个开发人员开发的代码删除吗?

显然不能

    所以在处理冲突时,第一步应该时找开发另一个需求的人员沟通,之后才是处理冲突。

  • 选中冲突的文件(带黄色感叹号的文件都是冲突的文件,如果有多个需要逐一处理)
  • 右键--> 编辑冲突
  • 处理完毕后,标记已解决

 

tag 标签

标签的概念

如果你的项目达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以给它打上标签(tag)。

比如说,我们想为我们的项目发布一个"1.0"版本。我们给最新一次提交打上(HEAD)"v1.0"的标签。

标签可以理解为项目里程碑的一个标记,一旦打上了这个标记则,表示当前的代码将不允许提交。

标签的创建(tag)

标签的创建和分支的创建操作几乎一样。

标签的切换与删除

http://www.lryc.cn/news/135317.html

相关文章:

  • WPS右键新建没有docx pptx xlsx 修复
  • 【巧学C++之西游篇】No.2 --- C++闹天宫,带着“重载“和“引用“
  • 【HarmonyOS】实现将pcm音频文件进行编码并写入文件(API6 Java)
  • KaiwuDB CTO 魏可伟:回归用户本位,打造“小而全”的数据库
  • 行业追踪,2023-08-22
  • 浏览器安装selenium驱动,以Microsoft Edge安装驱动为例
  • 边缘计算网关是如何提高物联网的效率的?
  • AWVS安装~Windows~激活
  • ATFX汇市:杰克逊霍尔年会降至,鲍威尔或再发鹰派言论
  • Zipkin开源的分布式链路追踪系统
  • java 项目运行时,后端控制台出现空指针异常---java.lang.NullPointerException
  • 模型数据处理-数据放入 session和@ModelAttribute 实现 prepare 方法详细讲解
  • 关于android studio 几个简单的问题说明
  • angular常用命令
  • uni-app打包后安卓不显示地图及相关操作详解
  • elelementui组件
  • 什么是安全测试报告,怎么获得软件安全检测报告?
  • JS中的Ajax
  • ImportError: cannot import name ‘SQLDatabaseChain‘ from ‘langchain‘解决方案
  • npm、yarn和pnpm
  • SparkSQL源码分析系列02-编译环境准备
  • 【计算机网络】日志与守护进程
  • 设计模式之职责链模式(ChainOfResponsibility)的C++实现
  • CGAL Mesh(网格数据)布尔操作
  • 技术分享| WebRTC之SDP详解
  • Flink Table API/SQL 多分支sink
  • Vue3 中 导航守卫 的使用
  • 云原生概论
  • hive-sql
  • Rspack 创建 vue2/3 项目接入 antdv(rspack.config.js 配置 less 主题)