3、Git分支操作与团队协作

Git分支操作

  • 1.什么是分支
  • 2. 分支的好处
  • 3. 分支的操作
    • 3.1 查看分支
    • 3.2 创建分支
    • 3.3 切换分支
    • 3.4 修改分支
    • 3.5 合并分支
    • 3.6 产生和解决冲突
  • 4. 创建分支和切换分支图解
  • 5. Git团队协作机制
    • 团队内协作
    • 跨团队协作

在这里插入图片描述
均在git bash中进行操作。事先建好本地工作库

1.什么是分支

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)
在这里插入图片描述

2. 分支的好处

同时并行推进多个功能开发,提高开发效率。
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

3. 分支的操作

命令名称作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名把指定的分支合并到当前分支上

3.1 查看分支

  1. 基本语法
git branch –v
  1. 实例
L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (master)
$ git branch -v
* master a0bd3a9 second commit

3.2 创建分支

  1. 基本语法
git branch 分支名
  1. 实例
L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (master)
$ git branch hot-fix

L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (master)
$ git branch -v
  hot-fix a0bd3a9 second commit
* master  a0bd3a9 second commit

3.3 切换分支

  1. 基本语法
git checkout 分支名
  1. 实例
L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (master)
$ git checkout hot-fix
Switched to branch 'hot-fix'

L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (hot-fix)
$ git branch -v
* hot-fix a0bd3a9 second commit
  master  6752aac hot-fix first commit

3.4 修改分支

L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (master)
$ git checkout hot-fix
Switched to branch 'hot-fix'

L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (hot-fix)
$ vim hello.txt

L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (hot-fix)
$ git add hello.txt

L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (hot-fix)
$ git commit -m "hot-fix second commit right" hello.txt
[hot-fix 8d3ba97] hot-fix second commit right
 1 file changed, 2 insertions(+)

此时当处在hot-fix分支时,工作区的hello.txt文件为本次修改后的结果:
在这里插入图片描述
若将分支切换回master时,工作区的hello.txt文件结果仍然保持修改前的原样:
在这里插入图片描述
不同的分支保存为不同的结果。

3.5 合并分支

  1. 基本语法
git merge 分支名
  1. 实例
    在master分支上合并hot-ffix分支
L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (hot-ffix)
$ git checkout master
Switched to branch 'master'
M       test.txt

L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (master)
$ git merge hot-ffix
Already up to date.

3.6 产生和解决冲突

  • 冲突产生的表现:后面状态为MERGING
  • 冲突产生的原因:
    合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。(只有在同一个位置的字符串上出现的增加和删减才不会产生冲突,在不同位置增加的内容也会产生冲突)
  • 查看状态(检测到有文件有两处修改)
  1. 实例
    在master分支的hello.txt文件中倒数第二行加上master test
    在hot-fix分支的hello.txt文件中最后一行加上hot-fix test
    此时在master分支上合并hot-fix分支将显示失败。
1.	L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/git-demo (hot-fix)
2.	$ git checkout master
3.	Switched to branch 'master'
4.	
5.	L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/git-demo (master)
6.	$ git merge hot-fix
7.	Auto-merging hello.txt
8.	CONFLICT (content): Merge conflict in hello.txt
9.	Automat-ic merge failed; fix conflicts and then commit the result.
10.	
11.	L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/git-demo (master|MERGING)
12.	$ git status
13.	On branch master
14.	You have unmerged paths.
15.	  (fix conflicts and run "git commit")
16.	  (use "git merge --abort" to abort the merge)
17.	
18.	Unmerged paths:
19.	  (use "git add <file>..." to mark resolution)
20.	        both modified:   hello.txt
21.	
22.	no changes added to commit (use "git add" and/or "git commit -a")

在同一个文件中发生冲突,需要手动修改合并。通过vim hello.txt打开文件,如图,手动进行修改并保存,将显示冲突部位的标识符也删除。
在这里插入图片描述
修改完之后再add和commit。但是手动修改后,不能识别修改的文件,因此commit的时候不能带文件名。

4. 创建分支和切换分支图解

在这里插入图片描述
Master、hot-fix其实都是指向具体版本记录的指针。当前所在的分支,其实是由HEAD决定的。所以创建分支的本质就是多创建一个指针。
HEAD如果指向master,那么我们现在就在master分支上。
HEAD如果指向hot-fix,那么我们现在就在hot-fix分支上。
所以切换分支的本质就是移动HEAD指针。

5. Git团队协作机制

团队内协作

在这里插入图片描述

跨团队协作

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Robot Framework实现多平台自动化测试

基于Robot Framework、Jenkins、Appium、Selenium、Requests、AutoIt等开源框架和技术&#xff0c;成功打造了通用自动化测试持续集成管理平台&#xff08;以下简称“平台”&#xff09;&#xff0c;显著提高了测试质量和测试用例的执行效率。 01、设计目标 平台通用且支持不同…

3D展2D数学原理

今年早些时候&#xff0c;我为 MAKE 杂志写了一篇教程&#xff0c;介绍如何制作视频游戏角色的毛绒动物。 该技术采用给定的角色 3D 模型及其纹理&#xff0c;并以编程方式生成缝纫图案。 虽然我已经编写了一般摘要并将源代码上传到 GitHub&#xff0c;但我在这里编写了对使这一…

【强化学习】基于蒙特卡洛MC与时序差分TD的简易21点游戏应用

1. 本文将强化学习方法&#xff08;MC、Sarsa、Q learning&#xff09;应用于“S21点的简单纸牌游戏”。 类似于Sutton和Barto的21点游戏示例&#xff0c;但请注意&#xff0c;纸牌游戏的规则是不同且非标准的。 2. 为方便描述&#xff0c;过程使用代码截图&#xff0c;文末附链…

三天吃透Spring面试八股文

目录&#xff1a; Spring的优点Spring 用到了哪些设计模式&#xff1f;什么是AOP&#xff1f;AOP有哪些实现方式&#xff1f;Spring AOP的实现原理JDK动态代理和CGLIB动态代理的区别&#xff1f;Spring AOP相关术语Spring通知有哪些类型&#xff1f;什么是IOC&#xff1f;IOC的…

Pytorch简介

1.1 Pytorch的历史 PyTorch是一个由Facebook的人工智能研究团队开发的开源深度学习框架。在2016年发布后&#xff0c;PyTorch很快就因其易用性、灵活性和强大的功能而在科研社区中广受欢迎。下面我们将详细介绍PyTorch的发展历程。 在2016年&#xff0c;Facebook的AI研究团队…

SpringBoot 3.2.0 基于Spring Security+JWT实现动态鉴权

依赖版本 JDK 17 Spring Boot 3.2.0 Spring Security 6.2.0 工程源码&#xff1a;Gitee 为了能够不需要额外配置就能启动项目&#xff0c;看到配置效果。用例采用模拟数据&#xff0c;可自行修改为对应的ORM操作 编写Spring Security基础配置 导入依赖 <properties>&l…

(已解决)(pytorch指定了gpu但还是占用了一点0号gpu)以及错误(cuDNN error: CUDNN_STATUS_INTERNAL_ERROR)

文章目录 错误原因解决问题 错误原因 出现错误cuDNN error: CUDNN_STATUS_INTERNAL_ERROR&#xff0c;从这个名字就可以看出&#xff0c;出错原因其实有可能有很多种&#xff0c;我这里说一种比较常见的&#xff0c;就是&#xff1a;显存不足。 一个困惑点在于&#xff0c;在…

为什么 export 导出一个字面量会报错而使用 export default 不会报错

核心 其实总的来说就是 export 导出的是变量的句柄&#xff08;或者说符号绑定、近似于 C 语言里面的指针&#xff0c;C里面的变量别名&#xff09;&#xff0c;而 export default 导出的是变量的值。 需要注意的是&#xff1a;模块里面的内容只能在模块内部修改&#xff0c;…

联合办公行业即将走向寒冬?如何重拾创业者信心

近年来&#xff0c;联合办公行业固然经历了迅猛发展&#xff0c;但现在似乎遭遇了一个潜在的拐点。面对经济的下行压力&#xff0c;一些人士担忧联合办公行业可能会步入寒冬。就在这个关键时刻&#xff0c;如何重拾创业者的信心成为行业内急需解决的问题。 首先要认识到的是&am…

c语言-位操作符练习题

文章目录 前言一、n&(n-1)的运用场景(n为整数)二、&1 和 >>的应用场景总结 前言 本篇文章介绍利用c语言的位操作符解决一些练习题&#xff0c;目的是掌握各个位操作符的使用和应用场景。 表1.1为c语言中的位操作符 操作符含义&按位与|按位或^按位异或~按位…

猪目标检测数据集VOC格式600张

猪是一种常见的哺乳动物&#xff0c;通常被人们认为是肉食动物&#xff0c;但实际上猪是杂食性动物&#xff0c;以植物性食物为主&#xff0c;也有偶尔食肉的习性。猪的体型较大&#xff0c;圆胖的体型和圆润的脸庞使其显得憨态可掬。它们主要通过嗅觉来感知周围环境&#xff0…

【持续更新ing】uniapp+springboot实现个人备忘录系统【前后端分离】

目录 &#xff08;1&#xff09;项目可行性分析 &#xff08;2&#xff09;需求描述 &#xff08;3&#xff09;界面原型 &#xff08;4&#xff09;数据库设计 &#xff08;5&#xff09;后端工程 接下来我们使用uniappspringboot实现一个简单的前后端分离的小项目----个…

TinyXml2基础操作大全,tinyxml深度解析,一文精通tinyxml之xml中的操作

&#x1f4cb; 前言 &#x1f5b1; 博客主页&#xff1a;在下马农的碎碎念&#x1f917; 欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;✍ 本文由在下马农原创&#xff0c;首发于CSDN&#x1f4c6; 首发时间&#xff1a;2021/12/25&#x1f4c5; 最近更新时…

Dockerfile - 基于 SpringBoot 项目自定义镜像(项目上线全过程)

目录 一、Dockerfile 自定义项目镜像 1.1、创建 SpringBoot 项目并编写 1.2、打包项目&#xff08;jar&#xff09; 1.3、编写 Dockerfile 文件&#xff0c;构建镜像 1.4、运行镜像并测试 一、Dockerfile 自定义项目镜像 1.1、创建 SpringBoot 项目并编写 a&#xff09;简…

手把手教你自己动手使用ONLYOFFICE制作2024年历日记本

手把手教你自己动手使用ONLYOFFICE制作2024年历日记本 又到了岁末年初的时候了&#xff0c;按照自己的习惯&#xff0c;是又该上淘宝买一个年历日记本了&#xff1a; 这也太便宜了吧&#xff01;这里我坚决要把价格打上去&#xff01; 把价格打上去&#xff0c;就是亲自动手制…

NFC物联网智能购物车设计方案

智能购物车是综合利用计算机网络、射频识别技术、数据库技术、单片机于一体的设备具有先进性、便于管理性、经济性、普适性。基于NFC (Near Field Communication&#xff0c;近场通信)技术的智能购物车&#xff0c;能够大幅缩短结账排队时间&#xff0c;实现“无感支付”。NFC是…

【C++】题解:三道只出现一次的数字问题

文章目录 只出现一次的数字i只出现一次的数ii只出现一次的数iii总结 本文介绍了三道只出现一次的数字问题的解法&#xff0c;分别是使用异或运算的方法、使用位运算的方法和使用异或运算和位运算相结合的方法。这三种方法都满足了题目中要求的线性时间复杂度和常数额外空间的条…

【教程】自动检测和安装Python脚本依赖的第三方库

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 背景说明 对于新python环境&#xff0c;要运行某个脚本&#xff0c;可能需要安装很多库&#xff0c;一般可以通过提供的requirements.txt来自动安装。但如果没有这个txt&#xff0c;那就得手动一个一个安装&#…

这一年,熬过许多夜,也有些许收获 | 2023年终总结

大家好&#xff0c;我是小悟 时间如白驹过隙&#xff0c;一如流光匆匆&#xff0c;转瞬即逝。它如同沙漏中的细沙&#xff0c;无声无息地从指间溜走&#xff0c;留给我们无尽的思索。 我们总是无知地忙碌着&#xff0c;而忽略了时间无形的步伐&#xff0c;却发现它已经一去不…

8个plotly绘图技巧

文章目录 什么是Plotlyplolty绘图如何添加标题&#xff0c;及控制标题的颜色和大小&#xff1f;plotly绘图如何自定义x轴和y轴的名称饼图如何同时显示百分比和数值柱状图宽度如何添加注释如何绘制多子图如何添加图例以及控制其颜色、大小、位置等桑基图Python技术资源分享1、Py…