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 查看分支
- 基本语法
git branch –v
- 实例
L@DESKTOP-C3ML9EI MINGW64 /e/Git-space/Test/gitTest (master)
$ git branch -v
* master a0bd3a9 second commit
3.2 创建分支
- 基本语法
git branch 分支名
- 实例
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 切换分支
- 基本语法
git checkout 分支名
- 实例
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 合并分支
- 基本语法
git merge 分支名
- 实例
在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无法替我们决定使用哪一个。必须人为决定新代码内容。(只有在同一个位置的字符串上出现的增加和删减才不会产生冲突,在不同位置增加的内容也会产生冲突) - 查看状态(检测到有文件有两处修改)
- 实例
在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系统的配置文件,有相对权限的用户能修改目录,但普通用户都可以访问。 sysconfig /etc/sysyconfig目录包含了Linux的系统配置文件 network-scripts network-scripts…...
wireshark access/trunk/hybrid报文分析
1,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----第十二章--类和动态内存分布
本章内容包括:对类成员使用动态内存分配;隐式和显式复制构造函数;隐式和显式重载赋值运算符;在构造函数中使用new所必须完成的工作;使用静态类成员;将定位new运算符用于对象;使用指向对象的指针…...
清理 Oracle Arch 目录中的日志文件
清理Oracle Arch目录中的文件需要遵循以下步骤: 1、登陆Oracle数据库服务器:确保你有权限访问Oracle数据库服务器,并且能够登录到服务器操作系统。 ssh 192.168.1.200 su - oracle2、启动RMAN(Recovery Manager)&…...
PicGo+GitHub搭建免费图床
PicGoGitHub搭建免费图床 步骤 1: 安装 PicGo步骤 2:创建图床仓库步骤 3: 配置 GitHub Token步骤 4: 配置 PicGo步骤 5: 上传图片步骤 6: 访问图片 使用 GitHub 作为图床的优势在于免费、稳定且具有版本控制功能,特别适合个人博客、小型项目等。PicGo作为一个开源的…...
免费在线客服软件推荐:经济实用的客户沟通解决方案
好用的在线客服软件是企业是必不可少的工具,他让企业流程更流畅高效,让客户服务更完善优质。市场上的在线客服软件有很多,说着免费使用的软件也不在少数。今天小编就来推荐一款免费在线客服软件。 不过,我们选择免费在线客服软件…...
leetcode344. 反转字符串
题目描述 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1: 输入:s ["h&quo…...
【js自定义鼠标样式】【js自定义鼠标动画】
文章目录 前言一、效果图二、实现步骤1. 去除原有鼠标样式2. 自定义鼠标样式3. 使用 总结 前言 自定义鼠标形状,自定义鼠标的动画,可以让我们的页面更加有设计感。 当前需求:吧鼠标自定义成一个正方形,鼠标的效果有:和…...
Linux开发工具——gdb篇
Linux下调试工具——gdb 文章目录 makefile自动化构建工具 gdb背景 gdb的使用 常用命令 总结 前言: 编写代码我们使用vim,编译代码我们使用gcc/g,但是我们,不能保证代码没问题,所以调试是必不可少的。与gcc/vim一样&…...
spring状态机
1、概述 Spring State Machine 是一个用于处理状态机逻辑的框架,它提供了一种简洁的方法来定义状 态、转换以及在状态变更时触发的动作。 概念 状态 ( State ) :一个状态机至少要包含两个状态。例如自动门的例子,有 …...
K8S异常处理
一、概述 1、k8s有时候会报错The connection to the server ip:6443 was refused - did you specify the right host or port ,本文档提供几种可能产生该报错的原因和排障思路。 二、发现问题 使用任意Kubectl 命令会报错:The connection to the serv…...
【挑战全网最易懂】深度强化学习 --- 零基础指南
深度强化学习介绍、概念 强化学习介绍离散场景,使用行为价值方法连续场景,使用概率分布方法实时反馈连续场景:使用概率分布 行为价值方法 强化学习六要素设计奖励函数设计评论家策略学习与优化 算法路径深度 Q 网络 DQN演员-评论家算法&…...
WPF RelativeSource
RelativeSource 类在 WPF 中提供了以下几种模式: RelativeSource Self:指定当前元素作为相对源。可以在当前元素的属性中绑定到自身的属性。 示例: <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 执行: 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过程如下: Git -> Rest Head… 在To Commit中的HEAD后面加上^,点击Reset即可撤回最近一次的尚未push的commit Reset Type 有三…...
Vue Echarts 多折线图只有一条X轴(合并X轴数据并去重排序) - 附完整示例
echarts:一个基于 JavaScript 的开源可视化图表库。 目录 效果 一、介绍 1、官方文档:Apache ECharts 2、官方示例 二、准备工作 1、安装依赖包 2、示例版本 三、使用步骤 1、在单页面引入 echarts 2、指定容器并设置容器宽高 3、数据处理&am…...
WPF+Halcon 培训项目实战(6):目标匹配助手
文章目录 前言相关链接项目专栏模板匹配助手简单使用金字塔级别参数自动选择应用插入代码 总结 前言 为了更好地去学习WPFHalcon,我决定去报个班学一下。原因无非是想换个工作。相关的教学视频来源于下方的Up主的提供的教程。这里只做笔记分享,想要源码…...
Linux管理LVM逻辑卷
目录 一、LVM逻辑卷介绍 1. 概述 2. LVM基本术语 2.1 PV(Physical Volume,物理卷) 2.2 VG (Volume Group,卷组) 2.3 LV (Logical Volume,逻辑卷) 3. 常用的磁盘命令 4. 查看系统信息的命…...
vue如何实现局部刷新?
应用场景: 比如你要切换tap栏实现刷新下面form表单等,相当于刷新页面。 如何使用如下: <div v-if"isReloadData"> 比如你想刷新那个位置就把 v-if"isReloadData"写到那个标签上 </div> 在data中定义刷新标…...
C语言,指针链表详解解说及代码示例
C语言,指针链表详解解说及代码示例 指针链表是一种常用的数据结构,用于存储和组织数据。它由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针。通过这种方式,可以动态地添加、删除和访问节点,实现灵活的数…...
6、LLaVA
简介 LLaVA官网 LLaVA使用Vicuna(LLaMA-2)作为LLM f ϕ ( ⋅ ) f_\phi() fϕ(⋅),使用预训练的CLIP图像编码器 ViT-L/14 g ( X v ) g(X_v) g(Xv)。 输入图像 X v X_v Xv,首先获取feature Z v g ( X v ) Z_vg(X_v) Zvg(Xv)。考虑到最后一…...
SpringMVC核心处理流程梳理
1、处理流程图展示 当我拿出这张图,阁下又该如何应对呢?执行流程是不是一目了然了。【记住一句话:所有的注解都只是一个标签或者标记,最终都是反射找到具体方法上面的注解标记,然后找到类、属性、方法扩展自己想要的功…...
go 语言程序设计第2章--程序结构
2.1 名称 如果一个实体在函数中声明,它只在函数局部有效。如果声明在函数外,它将对包里面所有源文件可见。 实体第一个字母的大小写决定其可见性是否跨包。如果名称以大写字母开头,它是导出的,意味着它对包外是可见和可访问的。包…...
JavaScript基础知识点总结:从零开始学习JavaScript(五)
如果大家感感兴趣也可以去看: 🎉博客主页:阿猫的故乡 🎉系列专栏:JavaScript专题栏 🎉ajax专栏:ajax知识点 🎉欢迎关注:👍点赞🙌收藏✍️留言 学习…...
Intel FPGA 技术开放日
概要 时间:2023.11.14 全天 ( 9:00 - 16: 20) 地点:北京望京. 凯悦酒店 主题内容:分享交流了Intel FPGA 产品技术优势和落地实践方案。 会议的议程 开场致词: FPGA业务,是几年前intel收购而…...
分享72个Python爬虫源码总有一个是你想要的
分享72个Python爬虫源码总有一个是你想要的 学习知识费力气,收集整理更不易。 知识付费甚欢喜,为咱码农谋福利。 链接:https://pan.baidu.com/s/1v2P4l5R6KT2Ul-oe2SF8cw?pwd6666 提取码:6666 项目名称 10 photo websites…...
Mybatis 动态 SQL - foreach
动态SQL的另一个常见需求是需要迭代一个集合,通常用于构建IN条件。例如: <select id"selectPostIn" resultType"domain.blog.Post">SELECT *FROM POST P<where><foreach item"item" index"index&quo…...
编程笔记 GOLANG基础 001 为什么要学习Go语言
编程笔记 GOLANG基础 001 为什么要学Go语言 一、推荐学习的计算机程序设计语言(一)、前端设计与编程:htmlcssjavascripttypescript(二)、C/C语言(三)、Go语言(四)、Pytho…...
OrientDB使用教程:全面了解图数据库
图数据库在当今数据处理领域中扮演着越来越重要的角色,而OrientDB作为一种多模型的数据库,具有图数据库、文档数据库和对象数据库的特性,为应对不同场景提供了灵活的解决方案。本教程将简要介绍OrientDB的使用,包括基本概念、安装…...
河北网站制作公司地址/seo短期课程
目录 ThreadPoolExecutor 源码阅读Executor 框架ExecutorExecutorServiceAbstractExecutorService构造器状态Worker 与任务调度提交任务线程池关闭ThreadPoolExecutor 源码阅读 读了一下 ThreadPoolExecutor 的源码(JDK 11), 简单的做个笔记. Executor 框架 Executor Executor …...
wordpress七牛云插件/营销策略有哪几种
一般用vue框架,在组件中为了不相互影响各自的样式,都会在 style 标签上加上 scoped , scoped 的作用是限制了样式的作用范围,只在本页有效。 ###### 最好的办法就是在要更改的样式名字前添加 /deep/ 去掉scoped 这个属性,用来解…...
丹江口网站制作/品牌推广策略怎么写
过拟合问题实战1.构建数据集我们使用的数据集样本特性向量长度为 2,标签为 0 或 1,分别代表了 2 种类别。借助于 scikit-learn 库中提供的 make_moons 工具我们可以生成任意多数据的训练集。import matplotlib.pyplot as plt# 导入数据集生成工具import …...
成都网站建设 川icp备/网站软件免费下载
【答案】:C B B B A ①你是公司某项目的项目经理。在项目过程中,你发现公司不具备自主研发某一项可交付成果的能力,并寻求了采购部门的支持。采购部门现在召开一个面向潜在供应商的会议,针对需要采购的内容进行澄清,请…...
新手如何建立自己网站/会计培训班要多少钱
using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace ConsoleApplication1{ //静态类和普通类的区别 //静态类不能被实例化 //正常的类 class A { internal void M() { Console.WriteLine…...
有没有做机械加工的网站/网站策划方案案例
copy过来有些图没了,见这里第二章 - 系统模型分3大块physical mode(只考虑物理连接方面的模型);architechture mode(主要是“计算”方面的体系结构模型,例如peer to peer、client to server)fun…...