看图说话:Git图谱解读

很多新加入公司的同学在使用Git各类客户端管理代码的过程中对于Git图谱解读不太理解,我们常用的Git客户端是SourceTree,配合P4Merge进行冲突解决基本可以满足日常工作大部分需要。不同的Git客户端工具对图谱展示会有些许差异,以下是SourceTree中Git图谱演示,后续也会针对类似SourceTree的图谱样式解读进行说明。

图谱拆解

标签 ========(距离相近的标签都有不同颜色,标签对应的分支线与标签颜色一致)

提交(Commit)============================

分支 ======================================

1. 标签所在的Commit是标签对应分支的最新一次提交

2. 可以通过分支对应的本地标签与远程仓库标签位置来判断本地的分支是有代码未推送,还是远程仓库有新的代码未拉取。
 

分支与提交的关系 ============================

各操作步骤说明

1. 在当前master分支新建一个文件A并提交  

2 .在当前master分支新建一个文件B并提交    

3. 在当前master分支修改文件A并提交    

4. 基于master新建分支 new branch (新建同时会默认切换到新建分支)  

5. 在当前new branch分支新建文件C并提交    

6. 手动切换到master分支并新建文件D

从上图中能看到每个新的提交会有一个圆点表示,并且新的提交圆点永远在其他的提交上面,不同分支会使用不同的颜色表示,包括线和圆点。在最后一个图的状态下, new branch的内容就是最上一个橘色的圆点和其下三个蓝色圆点的提交内容,master分支的内容则是4个蓝色圆点提交的内容。

分支合并 ===================================

上图描述了把new branch分支合并到master分支时分支和commit的关系,以及图谱中的展示方式。 以上是基于上一段配图中最后一个步骤执行的合并操作,针对一些特定情况下合并后的展示结果会有所有不同,见下一段说明。

分支合并 ====================================

上图左侧展示了new branch和master两个分支的当前状态,然后执行将new branch合并进master的操作,这时因为new branch和master的提交在同一条线上,所以这时候执行合并时有一个fast-forward的方式可以选择,如果选择了fast-forward方式进行合并,实际上是把master分支头部的指针向上移动到new branch指针所在的位置,从图谱中看就是移动了标签,从而完成了合并。如果不选择fast-forward方式,那合并仍然会出现一个拐点会让new branch分支和master分支保持在各自的线上。不使用fast-forward方式进行合并一个好处就是可以从图谱上很明显的看到一个合并的动作,有利于分析分支状态,查看合并操作,防止有时候会忘记我的分支有没有合并过。 关于合并其实还有一种方式叫rebase(变基),这种属于更高级一些的操作用在特定场景,可以保持代码的整洁,将冲突解决提前,避免提交合并审核时出现冲突而需要再次手动解决。

(附)工具界面

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[C#]winform部署yolov7+CRNN实现车牌颜色识别车牌号检测识别

【官方框架地址】 https://github.com/WongKinYiu/yolov7.git 【框架介绍】 Yolov7是一种目标检测算法,全称You Only Look Once version 7。它是继Yolov3和Yolov4之后的又一重要成果,是目标检测领域的一个重要里程碑。 Yolov7在算法结构上继承了其前…

【AcWing第140场周赛】AcWing 5461. 判断序列(A题)

文章目录 一、题目1、原题链接2、题目描述 二、解题报告1、思路分析2、时间复杂度3、代码详解 一、题目 1、原题链接 5461. 判断序列 2、题目描述 二、解题报告 1、思路分析 按照题目要求模拟即可。具体过程:设置一个变量来记录是否满足题目要求,检查…

虹科分享丨汽车技术的未来:Netropy如何测试和确保汽车以太网的性能

来源:艾特保IT 虹科分享丨汽车技术的未来:Netropy如何测试和确保汽车以太网的性能 原文链接:https://mp.weixin.qq.com/s/G8wihrzqpJJOx5i0o63fkA 欢迎关注虹科,为您提供最新资讯! #汽车以太网 #车载网络 #Netropy …

SpringBoot常见错误

SpringBoot常见错误 1、SpringBoot启动时报错 错误: 找不到或无法加载主类 com.xxx.xxx.Application springboot启动时报错错误:找不到或无法加载主类 com.xxx.xxx.Application。 解决方法就是打开idea的控制台,输入以下三行命令: mvn cl…

Android发展历程及安装

目录 发展历程 下载网址 安装过程 发展历程 安卓基于Linux内核,Linux内核相当于房屋的地基 开源不等于免费,不能商用 安卓一般每半年小更新,一年大更新 对应API相当于别名 现在安卓安全性越来越高,性能越来越快&#xff0c…

2024.1.25 C++QT 作业

思维导图 练习题 1. 自己封装一个矩形类(Rect),拥有私有属性:宽度(width)、高度(height), 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和面积函数:void sh…

社交巨头之争:Facebook如何保持领先地位

社交媒体领域一直是激烈的竞争场地,而在这场竞争中,Facebook一直屹立不倒,保持着领先地位。究竟是什么让这个社交巨头在激烈的竞争中屡屡脱颖而出呢?本文将深入剖析,揭示Facebook如何通过创新、数据驱动、社会责任等关…

flink-java使用介绍,flink,java,DataStream API,DataSet API,ETL,设置 jobname

1、环境准备 文档:https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/ 仓库:https://github.com/apache/flink 下载:https://flink.apache.org/zh/downloads/ 下载指定版本:https://archive.apache.org/dist/flink…

Java项目:基于SSM框架实现的企业员工岗前培训管理系统(ssm+B/S架构+源码+数据库+毕业论文)

一、项目简介 本项目是一套ssm821基于ssm框架实现的企业员工岗前培训管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格…

深入解析HTTPS:安全机制全方位剖析

随着互联网的深入发展,网络传输中的数据安全性受到了前所未有的关注。HTTPS,作为HTTP的安全版本,为数据在客户端和服务器之间的传输提供了加密和身份验证,从而确保了数据的机密性、完整性和身份真实性。本文将详细探讨HTTPS背后的…

2023年深圳市节假日人口迁入数据,shp/excel格式,需要自取!

基本信息. 数据名称: 深圳市节假日人口迁入数据 数据格式: Shp、excel 数据时间: 2023年国庆节 数据几何类型: 线 数据坐标系: WGS84 数据来源:网络公开数据 数据字段: 序号字段名称字段说明1a0928迁入人口占迁入深圳市人口的比值&#xff0…

(2)(2.9) Holybro Microhard P900无线电遥测设备

文章目录 前言 1 特点 2 规格 3 包装内包括 前言 Holybro Microhard Radio 集成了 microhard Pico 系列射频模块,能够在强大的拓扑结构中提供高性能无线串行通信,如点对点、点对多点和安全 Mesh(P840 不提供 Mesh)。 它采用跳…

Unity——八叉树的原理与实现

八叉树原理 八叉树(Octree)是一种用于在三维空间中进行空间分割的数据结构。它将三维空间递归地划分为八个子空间,每个子空间对应于一个八叉树节点。这种分割方式可以有效地组织和管理场景中的对象,提高检索效率,特别…

python笔记10

1、继承 继承是面向对象编程中的一个重要概念,它允许一个类(子类)继承另一个类(父类)的属性和方法。通过继承,子类可以重用父类的代码,并且有机会添加新的属性和方法,或者重写父类的…

Git 教程 | 将本地修改后的文件推送到 Github 指定远程分支上

Git 是一种分布式版本控制系统,用于敏捷高效地处理任何大小的项目。它是由 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的开源版本控制软件。Git 的本地克隆就是一个完整的版本控制存储库,无论脱机还是远程都能轻松工作。开发人员会在本地提交其工…

[嵌入式系统-5]:龙芯1B 开发学习套件 -2- LoongIDE 集成开发环境集成开发环境的安装步骤

目录 一、LoongIDE(龙芯开发工具集成环境)概述 1.1 概述 二、软件开发环境的安装过程 2.0 注意事项 2.1 步骤1:MingW运行环境 2.2 步骤2:安装LoongIDE 2.3 步骤3:安装MIPS工具链 2.4 配置工具链 2.5 重启电脑…

Bytebase 签约 Aptive,助力北美商住害虫控制服务领导者构建统一数据库操作平台

在数字化快速发展时代,有效的规范数据库管理对企业安全运营至关重要。近日,数据库 DevOps 团队协同管理工具 Bytebase 签约北美商住害虫控制服务的领导者 Aptive Environmental,旨在全面优化 Aptive Environmental 的数据库操作管理&#xff…

天软特色因子看板 (2024.01 第10期)

该因子看板跟踪天软特色因子A04001(当日趋势强度),该因子为反映股价走势趋势强弱,用以反映股价走势趋势强弱,abs(值)越接近1,趋势 性越强,符号代表涨跌方向。 今日为该因子跟踪第10期,跟踪其在SW801120 (申…

离线生成双语字幕,一键生成中英双语字幕,基于AI大模型,ModelScope

离线生成双语字幕整合包,一键生成中英双语字幕,基于AI大模型 制作双语字幕的方案网上有很多,林林总总,不一而足。制作双语字幕的原理也极其简单,无非就是人声背景音分离、语音转文字、文字翻译,最后就是字幕文件的合并&#xff0c…

服务端开发小记02——Maven

这里写目录标题 Maven简介Maven在Linux下的安装Maven常用命令 Maven简介 Apache Maven Project是一个apache的开源项目,是用于构建和管理Java项目的工具包。 用Maven可以方便地创建项目,基于archetype可以创建多种类型的java项目;Maven仓库…