当前位置: 首页 > 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中定义刷新标…...

Unity游戏开发实战:用三阶贝塞尔曲线为你的角色设计一条丝滑的移动路径(附完整C#脚本)

Unity游戏开发实战&#xff1a;三阶贝塞尔曲线打造丝滑角色移动路径 想象一下&#xff0c;你的游戏角色需要完成一个优雅的空中翻转动作&#xff0c;或者赛车需要在弯道实现完美漂移轨迹。这些令人惊叹的运动效果背后&#xff0c;往往隐藏着一条看不见的数学曲线——贝塞尔曲线…...

SecGPT-14B部署教程:适配国产昇腾910B的vLLM分支编译与性能调优

SecGPT-14B部署教程&#xff1a;适配国产昇腾910B的vLLM分支编译与性能调优 1. SecGPT-14B简介 SecGPT是由云起无垠推出的开源大语言模型&#xff0c;专注于网络安全领域。该模型融合了自然语言理解、代码生成和安全知识推理等能力&#xff0c;旨在为安全专业人员提供智能辅助…...

GD32F30x串口DMA+空闲中断接收不定长数据,一个LED控制项目带你搞懂

GD32F30x串口DMA空闲中断实战&#xff1a;从零构建LED智能控制系统 在嵌入式开发中&#xff0c;串口通信就像设备的"嘴巴"和"耳朵"&#xff0c;而DMA技术则是解放CPU的"隐形助手"。想象一下这样的场景&#xff1a;你需要通过手机APP远程控制实验…...

UE5.3与Colosseum集成配置指南及常见问题解析

1. 环境准备&#xff1a;Windows系统下的基础配置 在开始Colosseum与UE5.3的集成之前&#xff0c;我们需要确保开发环境满足基本要求。我最近在Windows 11系统上完成了一次完整配置&#xff0c;实测下来这几个关键组件版本组合最稳定&#xff1a; 操作系统&#xff1a;Windows …...

ShapeOfView贡献指南:如何为开源项目添加新的自定义形状

ShapeOfView贡献指南&#xff1a;如何为开源项目添加新的自定义形状 【免费下载链接】ShapeOfView Give a custom shape to any android view, Material Design 2 ready 项目地址: https://gitcode.com/gh_mirrors/sh/ShapeOfView ShapeOfView是一款强大的Android开源库…...

vue3-count-to避坑指南:数字增长动画的7个常见问题与解决方案

Vue3-Count-To深度避坑实战&#xff1a;数字动画7大疑难解析 数字动态增长效果在数据可视化、金融仪表盘和运营数据展示中扮演着关键角色。vue3-count-to作为Vue3生态中专精于此的轻量级库&#xff0c;虽然API简洁&#xff0c;但在真实业务场景中往往会遇到各种边界情况。本文将…...

OpenClaw本地模型成本对比:nanobot镜像vs商业API实测

OpenClaw本地模型成本对比&#xff1a;nanobot镜像vs商业API实测 1. 为什么需要关注OpenClaw的模型成本 上周我在尝试用OpenClaw自动化处理200份PDF文档时&#xff0c;意外发现账单上出现了三位数的API费用。这个数字让我意识到——当OpenClaw需要频繁调用大模型进行决策时&a…...

【大模型调优】彻底洗掉论文“机器味”:DeepSeek/Kimi/豆包专属降AI指令与保姆级工作流

很多时候大学生写论文逻辑太严谨、话术太规范&#xff0c;反而会导致AI率过高&#xff0c;且一旦AI率过高&#xff0c;轻则退回重改&#xff0c;重则取消答辩资格&#xff0c;这后果谁都担不起。 为了帮大家有效降低aigc率&#xff0c;这周我专门针对目前市面上最主流的三款大…...

10X探头隐藏技能:除了衰减信号,它如何用补偿电容拯救你的高频测量?

10X探头的高频测量奥秘&#xff1a;补偿电容如何成为信号保真的关键 在电子测量领域&#xff0c;示波器探头是工程师们不可或缺的工具&#xff0c;而10X探头凭借其独特的设计在高频测量中展现出无可替代的优势。本文将深入探讨10X探头内部补偿电容的工作原理&#xff0c;揭示它…...

基于Python的项目申报系统毕设源码

博主介绍&#xff1a;✌ 专注于Java,python,✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。一、研究目的本研究旨在设计并实现一个基于Python的项目申报系统&#xff0c;以满足现代项目管理中对项目申报流程的自动化、高效化和规范化的需求。具体研究目的如下&#x…...