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

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-fixL@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (master)
$ git branch -vhot-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 commitmaster  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.txtL@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (hot-fix)
$ git add hello.txtL@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 right1 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.txtL@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团队协作机制

团队内协作

在这里插入图片描述

跨团队协作

在这里插入图片描述

相关文章:

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

Git分支操作 1.什么是分支2. 分支的好处3. 分支的操作3.1 查看分支3.2 创建分支3.3 切换分支3.4 修改分支3.5 合并分支3.6 产生和解决冲突 4. 创建分支和切换分支图解5. Git团队协作机制团队内协作跨团队协作 均在git bash中进行操作。事先建好本地工作库 1.什么是分支 在版本…...

Linux网卡配置

一、网卡配置 1、目录参数 /etc/syscofig/network-scripts/ifcfg-e*** /etc 目录时Linux系统的配置文件&#xff0c;有相对权限的用户能修改目录&#xff0c;但普通用户都可以访问。 sysconfig /etc/sysyconfig目录包含了Linux的系统配置文件 network-scripts network-scripts…...

wireshark access/trunk/hybrid报文分析

1&#xff0c;access接口 发送带vlan的报文 wireshark交换机配置 [Huawei-GigabitEthernet0/0/1] [Huawei-GigabitEthernet0/0/1]port link-type access [Huawei-GigabitEthernet0/0/1]port default vlan 100 [Huawei-GigabitEthernet0/0/2]port link-type access [Huawei-Gig…...

C++ Primer Plus----第十二章--类和动态内存分布

本章内容包括&#xff1a;对类成员使用动态内存分配&#xff1b;隐式和显式复制构造函数&#xff1b;隐式和显式重载赋值运算符&#xff1b;在构造函数中使用new所必须完成的工作&#xff1b;使用静态类成员&#xff1b;将定位new运算符用于对象&#xff1b;使用指向对象的指针…...

清理 Oracle Arch 目录中的日志文件

清理Oracle Arch目录中的文件需要遵循以下步骤&#xff1a; 1、登陆Oracle数据库服务器&#xff1a;确保你有权限访问Oracle数据库服务器&#xff0c;并且能够登录到服务器操作系统。 ssh 192.168.1.200 su - oracle2、启动RMAN&#xff08;Recovery Manager&#xff09;&…...

PicGo+GitHub搭建免费图床

PicGoGitHub搭建免费图床 步骤 1: 安装 PicGo步骤 2:创建图床仓库步骤 3: 配置 GitHub Token步骤 4: 配置 PicGo步骤 5: 上传图片步骤 6: 访问图片 使用 GitHub 作为图床的优势在于免费、稳定且具有版本控制功能&#xff0c;特别适合个人博客、小型项目等。PicGo作为一个开源的…...

免费在线客服软件推荐:经济实用的客户沟通解决方案

好用的在线客服软件是企业是必不可少的工具&#xff0c;他让企业流程更流畅高效&#xff0c;让客户服务更完善优质。市场上的在线客服软件有很多&#xff0c;说着免费使用的软件也不在少数。今天小编就来推荐一款免费在线客服软件。 不过&#xff0c;我们选择免费在线客服软件…...

leetcode344. 反转字符串

题目描述 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1&#xff1a; 输入&#xff1a;s ["h&quo…...

【js自定义鼠标样式】【js自定义鼠标动画】

文章目录 前言一、效果图二、实现步骤1. 去除原有鼠标样式2. 自定义鼠标样式3. 使用 总结 前言 自定义鼠标形状&#xff0c;自定义鼠标的动画&#xff0c;可以让我们的页面更加有设计感。 当前需求&#xff1a;吧鼠标自定义成一个正方形&#xff0c;鼠标的效果有&#xff1a;和…...

Linux开发工具——gdb篇

Linux下调试工具——gdb 文章目录 makefile自动化构建工具 gdb背景 gdb的使用 常用命令 总结 前言&#xff1a; 编写代码我们使用vim&#xff0c;编译代码我们使用gcc/g&#xff0c;但是我们&#xff0c;不能保证代码没问题&#xff0c;所以调试是必不可少的。与gcc/vim一样&…...

spring状态机

1、概述 Spring State Machine 是一个用于处理状态机逻辑的框架&#xff0c;它提供了一种简洁的方法来定义状 态、转换以及在状态变更时触发的动作。 概念 状态 &#xff08; State &#xff09; &#xff1a;一个状态机至少要包含两个状态。例如自动门的例子&#xff0c;有 …...

K8S异常处理

一、概述 1、k8s有时候会报错The connection to the server ip:6443 was refused - did you specify the right host or port &#xff0c;本文档提供几种可能产生该报错的原因和排障思路。 二、发现问题 使用任意Kubectl 命令会报错&#xff1a;The connection to the serv…...

【挑战全网最易懂】深度强化学习 --- 零基础指南

深度强化学习介绍、概念 强化学习介绍离散场景&#xff0c;使用行为价值方法连续场景&#xff0c;使用概率分布方法实时反馈连续场景&#xff1a;使用概率分布 行为价值方法 强化学习六要素设计奖励函数设计评论家策略学习与优化 算法路径深度 Q 网络 DQN演员-评论家算法&…...

WPF RelativeSource

RelativeSource 类在 WPF 中提供了以下几种模式&#xff1a; RelativeSource Self&#xff1a;指定当前元素作为相对源。可以在当前元素的属性中绑定到自身的属性。 示例&#xff1a; <TextBlock Text"{Binding Text, RelativeSource{RelativeSource Self}}" /&…...

centos 安装 配置 zsh

centos 编译安装 zsh 和 配置 oh-my-zsh 下载 wget https://jaist.dl.sourceforge.net/project/zsh/zsh/5.9/zsh-5.9.tar.xz依赖 yum install ncurses-devel安装zsh 执行&#xff1a; tar -xvf zsh-5.9.tar.xz cd zsh-5.9 ./configure --prefix/usr/local/zsh5.9 make &am…...

git 常用基本命令, reset 回退撤销commit,解决gitignore无效,忽略记录或未记录远程仓库的文件,删除远程仓库文件

git 基本命令 reset 撤销commit https://blog.csdn.net/a704397849/article/details/135220091 idea 中 rest 撤销commit过程如下&#xff1a; Git -> Rest Head… 在To Commit中的HEAD后面加上^&#xff0c;点击Reset即可撤回最近一次的尚未push的commit Reset Type 有三…...

Vue Echarts 多折线图只有一条X轴(合并X轴数据并去重排序) - 附完整示例

echarts&#xff1a;一个基于 JavaScript 的开源可视化图表库。 目录 效果 一、介绍 1、官方文档&#xff1a;Apache ECharts 2、官方示例 二、准备工作 1、安装依赖包 2、示例版本 三、使用步骤 1、在单页面引入 echarts 2、指定容器并设置容器宽高 3、数据处理&am…...

WPF+Halcon 培训项目实战(6):目标匹配助手

文章目录 前言相关链接项目专栏模板匹配助手简单使用金字塔级别参数自动选择应用插入代码 总结 前言 为了更好地去学习WPFHalcon&#xff0c;我决定去报个班学一下。原因无非是想换个工作。相关的教学视频来源于下方的Up主的提供的教程。这里只做笔记分享&#xff0c;想要源码…...

Linux管理LVM逻辑卷

目录 一、LVM逻辑卷介绍 1. 概述 2. LVM基本术语 2.1 PV&#xff08;Physical Volume&#xff0c;物理卷&#xff09; 2.2 VG (Volume Group&#xff0c;卷组&#xff09; 2.3 LV (Logical Volume&#xff0c;逻辑卷&#xff09; 3. 常用的磁盘命令 4. 查看系统信息的命…...

vue如何实现局部刷新?

应用场景&#xff1a; 比如你要切换tap栏实现刷新下面form表单等&#xff0c;相当于刷新页面。 如何使用如下&#xff1a; <div v-if"isReloadData"> 比如你想刷新那个位置就把 v-if"isReloadData"写到那个标签上 </div> 在data中定义刷新标…...

算法模拟类题目解析

前言&#xff1a;最近开始偏系统的从简单到难一步步刷算法题&#xff0c;先从模拟题开始&#xff0c;下边附带题目与连接&#xff0c;感兴趣可刷刷也可看看我的思路。 一.字符串展开 链接&#xff1a;https://ac.nowcoder.com/acm/problem/16644 来源&#xff1a;牛客网 题意…...

多任务学习进阶:从MMoE到PLE的模型演进与实战解析

1. 多任务学习基础与核心挑战 多任务学习&#xff08;Multi-Task Learning, MTL&#xff09;是机器学习领域的一个重要分支&#xff0c;它让单个模型同时学习多个相关任务。想象一下&#xff0c;你正在教一个学生同时学习数学和物理。如果这两个学科有共同的基础概念&#xff0…...

网络通信技术基础知识,网络通信技术数据包介绍

网络通信技术是关键技术之一&#xff0c;对于网络通信技术&#xff0c;我们应对其有所了解。为增加大家对网络通信技术的认识&#xff0c;本文将对网络通信技术的数据包结构和原理予以介绍。如果你对网络通信技术存在兴趣&#xff0c;不妨继续往下阅读哦。 在网络通信中, "…...

深耕纪实创作 AVG Media 以专业能力赋能纪录片产业发展

在全球内容产业快速迭代的当下&#xff0c;纪录片凭借真实的叙事力量、深厚的人文价值与多元的传播场景&#xff0c;成为内容领域中兼具艺术价值与商业价值的重要载体。国内纪录片行业历经多年发展&#xff0c;形成了多元主体参与、创作方向细分、国际合作深化的行业格局&#…...

3个核心功能让Windows优化变得如此简单:Winhance中文版深度体验

3个核心功能让Windows优化变得如此简单&#xff1a;Winhance中文版深度体验 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. C# application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirrors/wi/Wi…...

Janus-Pro-7B效果展示:手写体/表格/多语言混合OCR识别准确率实测

Janus-Pro-7B效果展示&#xff1a;手写体/表格/多语言混合OCR识别准确率实测 1. 引言 你有没有遇到过这样的场景&#xff1f;翻出一张老照片&#xff0c;背面是长辈用钢笔写下的寄语&#xff0c;字迹有些潦草&#xff0c;想把它转成电子版保存&#xff0c;却一个字也认不出来…...

为什么MedNeXt能超越Transformer?揭秘大卷积核在医学图像分割中的独特优势

MedNeXt如何用大卷积核重塑医学图像分割&#xff1f;技术优势全解析 当你在深夜的医院影像科&#xff0c;看着屏幕上模糊的CT扫描图&#xff0c;试图从那些灰度渐变中分辨出肿瘤边界时&#xff0c;是否会想过AI模型眼中的世界&#xff1f;医学图像分割——这个决定患者治疗方案…...

Android tinyalsa深度解析之pcm_params_get_period_size_max调用流程与实战(一百七十二)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》作者 博主新书推荐&#xff1a;《Android系统多媒体进阶实战》&#x1f680; Android Audio工程师专栏地址&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; Android多媒体专栏地址&a…...

探索开源软件 FireGeo:地理空间数据处理的新选择

探索开源软件 FireGeo&#xff1a;地理空间数据处理的新选择 在地理空间数据处理的领域中&#xff0c;开源软件正以其独特的优势逐渐崭露头角&#xff0c;为众多专业人士和爱好者提供了丰富多样的工具。FireGeo 作为其中一款开源软件&#xff0c;正吸引着越来越多人的关注&…...

PDF-Parser-1.0行业报告:市场分析与技术趋势

PDF-Parser-1.0行业报告&#xff1a;市场分析与技术趋势 1. 引言 每天都有成千上万份行业报告、白皮书和研究文档以PDF格式在企业间流转。这些文档蕴含着宝贵的市场洞察、技术趋势和商业机会&#xff0c;但手动提取和分析这些信息需要耗费大量时间和精力。PDF-Parser-1.0的出…...