0


【Git】SourceTree学习笔记-图谱理解【2023.03.17】

本系列文章前言

  之前一直用的TeamFoundation,近期要代码迁移到Gitee,组内使用SourceTree进行代码管理。故将近期的学习内容做个总结。就我个人来说,不管啥技术基本上都是现学现用,网上看教程也都是看的最精简的版本。恨不能一篇文章就读懂整个框架,一句话就弄明白几万行代码的设计思想。实际后来认识到一句至理名言:

“慢即是快” 一一曾国藩

我意识到,越耐心的总结一篇文章,越慢的梳理一些逻辑,发现自己的“总进度”反而变快了。

摘要

本篇主要分析SourceTree的图谱。

一、本地分支之所有"分支模式"分析

观察分支图谱可以选择仅查看当前分支还是查看所有分支,仅查看当前分支可以只关心某一条分支的更新记录。查看所有分支可以观察到仓库的所有分支及所有分支的更新记录。二者都有针对的使用场景。

(1)develop分支

  1. 下图红色圈1对应Git中的分支,黑色加粗表示当前分支。注意红色矩形框框住的的分支都是本地分支。
  2. 下图红色圈2对应仓库的起始点,也就是仓库的首次提交。
  3. 下图红色圈3空心红色圈表示本地分支所在节点。在这里插入图片描述

(2)master分支

双击左侧master,切换到master分支。

  1. 红色圈1所指的空心绿色圈表示当前本地分支所在节点。
  2. 红色圈2所指的是这条分支的源头起点。也就是在哪些更新的基础上的更改。在这里插入图片描述

(3)“版本一:剪贴板方式”分支

双击左侧“版本一:剪贴板方式”,切换到该分支。

  1. 红色圈1所指的空心蓝色圈表示当前本地分支所在节点。
  2. 红色圈2所指的是commit的描述
  3. 红色圈3所指的是标签,表明该commit对应的哪条本地分支。标签的颜色和分支线的颜色一致。
  4. 红色圈4所指的是标签,表明该commit对应的哪条远程分支。远程分支格式有前缀origin在这里插入图片描述

(4)总结

  1. 红色圈1所指的是“版本一:剪贴板方式”分支。
  2. 红色圈2所指的是“develop”分支。
  3. 红色圈3所指的是"master"分支。
  4. 三条分支,从最左侧开始并行向上。起点可以清晰表明分支是基于哪些更改。需注意并行向上的竖线不全是分支,但分支一定是按从左往右的方式排布。
  5. 观察时先找空心的圈,眼睛盯住整个空心圈所在的线,按图索骥,所有的实心点都是一次commit。看下commit内容是什么,从哪个分支的哪次更新merge过来的。在这里插入图片描述

二、本地分支之当前分支模式理解

观察分支图谱可以选择仅查看当前分支还是查看所有分支,仅查看当前分支可以只关心某一条分支的更新记录。查看所有分支可以观察到仓库的所有分支及所有分支的更新记录。二者都有针对的使用场景。

(1)develop分支

因为我这套代码是以

develop

为主线衍生的,所以即使切换到当前分支,其他分支也基本都能观察到。常规做法是以

master

为主线。

  1. 红色圈1所指的下拉框,选择到当前分支。
  2. 红色圈2所指的是一条commit记录,对应一个实心的黄点。
  3. 红色圈3所指的是一条commit记录,对应一个实心的黄点。
  4. 红色圈7所指的是一条commit记录,对应内容是把分支“版本一:剪贴板方式”合并到“master”分支。
  5. 红色圈4、5有前缀origin表示分支是远程分支,注意标签的颜色和分支线的颜色是对应的,线上的commit点和分支线的颜色是一致的。

在这里插入图片描述

(2)master分支

  1. 红色圈1所指的红色线就是master分支。
  2. 红色圈2所指的是一条commit记录,对应的操作是将master分支合并到版本一:”剪贴板方式分支“。在这里插入图片描述

(3)“版本一:剪贴板方式”分支

在这里插入图片描述

  1. 红色圈1所指的蓝色线就是版本一:剪贴板方式分支。
  2. 红色圈2所指的是一条commit记录,对应的操作是“update: 版本一注释掉无关代码”。

(4)总结

当前分支模式观察图谱可以先看主线分支,图谱只有一条竖线的,观察主线的更改很清晰。

三、本地仓库与远程仓库

(1)对仓库的理解

Git是分布式代码仓储管理系统。可以理解为CS架构,本地仓库对应客户端,远程仓库对应服务端。多人并行开发一套软件时,每个人都可以把仓库检出

checkout

到本机,在本地修改之后再更新到服务端。

(2)SourceTree获取远程分支

SourceTree获取远程分支可以双击分支,弹出对话框,选择检出即可。下图矩形框住的地方就是远程服务端所维护的仓库。总共四个分支:develop、HEAD、master、版本一:剪贴板方式。注意到远程分支四个而我们本地分支仅有三个,这是怎么回事?
在这里插入图片描述
双击HEAD尝试检出,发现报错,”

fatal: 'HEAD' is not a valid branch name

“。实际上因为HEAD类似于链表数据结构的头结点,它不存管数据,仅是指向当前的分支节点。我们切换到哪个分支,HEAD就指向哪个分支。
在这里插入图片描述

(3)本地仓库与远程仓库的关系

抛开分布式不谈,假设程序员只有一个,显然本地与远程仓库应该是实时保持一致的。程序员多了之后不可能做到每个人的开发内容,开发进度都保持一致,但是目标是要尽可能的一致。也就是Git提交代码要及时,拉取代码也要及时。本地与远程除了正在开发的内容其余都要尽可能保持一致。

四、删除分支

标签: git 学习 github

本文转载自: https://blog.csdn.net/qq_25231249/article/details/129612894
版权归原作者 MFC不精通不改名 所有, 如有侵权,请联系我们删除。

“【Git】SourceTree学习笔记-图谱理解【2023.03.17】”的评论:

还没有评论