IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git分支简介与使用——Git的学习与使用(五) -> 正文阅读

[开发工具]Git分支简介与使用——Git的学习与使用(五)

本节主要总结分支的基本概念与本地库分支的基本使用,对于远程分支的使用在下一个部分进行总结。同时分支也是之前很多概念的基础。理解分支的概念也有助于后面更好的使用Git。

几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。

分支简介

首先明确Git数据的保存方式,他是一系列不同时刻的快照,然后Git保存一个提交对象的时候,该提交对象会保存一个指向暂存内容的快照的指针。该提交对象还包含了作者的姓名和邮箱、提交时输入的信息以及指向它的父对象的指针。首次提交产生的提交对象没有父对象,普通提交操作产生的提交对象有一个父对象,而由多个分支合并产生的提交对象有多个父对象

Git保存数据的方式

我们假设现在有一个工作目录,里面包含了三个将要被暂存和提交的文件。暂存操作会为每一个文件计算校验和(使用我们在起步中提到的SHA-1哈希算法),然后会把当前版本的文件快照保存到Gt仓库中(Gt使用blob对象来保存它们),最终将校验和加入到暂存区域等待提交
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Git 的分支,其实本质上仅仅是指向提交对象的可变指针。 Git 的默认分支名字是 master。 在多次提交操作之后,你其实已经有一个指向最后那个提交对象的 master 分支。 master 分支会在每次提交时自动向前移动。

分支的基本使用

创建分支

git branch <branchname>
在这里插入图片描述
HEAD 可以表示目前所在的分支
在这里插入图片描述

分支的切换

使用git checkout
在这里插入图片描述
在这里插入图片描述

分支的新建与合并(案例)

背景

在这里插入图片描述

新建与切换分支

在这里插入图片描述
创建一个分支同时切换到那个分支上。git checkout -b iss53
等同于
在这里插入图片描述

这时候你的 HEAD 指针指向了 iss53 分支。当你切换分支的时候,Git 会重置你的工作目录,使其看起来像回到了你在那个分支上最后一次提交的样子。 Git 会自动添加、删除、修改文件以确保此时你的工作目录和这个分支最后一次提交时的样子一模一样。
可以说C2是一个版本了,现在需要开始新建一个分支来解决问题,于是创建一个iss53分支来解决问题。
在这里插入图片描述
iss53对问题进行了修改,现在突然说要修复一个紧急问题。 有了 Git 的帮助,你不必把这个紧急问题和 iss53 的修改混在一起, 你也不需要花大力气来还原关于 53# 问题的修改,然后再添加关于这个紧急问题的修改,最后将这个修改提交到线上分支。 你所要做的仅仅是切换回 master 分支。要留意你的工作目录和暂存区里那些还没有被提交的修改, 它可能会和你即将检出的分支产生冲突从而阻止 Git 切换到该分支。
在这里插入图片描述
新建分支,解决问题。
在这里插入图片描述

合并分支

你可以运行你的测试,确保你的修改是正确的,然后将 hotfix 分支合并回你的 master 分支来部署到线上。你可以使用 git merge 命令来达到上述目的:切回master,然后git merge hotfix
在这里插入图片描述

删除分支

git branch -d hotfix
在这里插入图片描述

继续工作

切回issue5分支,继续解决issue53问题
在这里插入图片描述

分支的合并

假设你已经修正了 #53 问题,并且打算将你的工作合并入 master 分支。 为此,你需要合并 iss53 分到master 分支,这和之前你合并 hotfix 分支所做的工作差不多。你只需要检出到你想合并入的分支,然后运行git merge 命令:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述合并完成后删除分支
在这里插入图片描述

遇到冲突时的分支合并

有时候合并操作不会如此顺利。如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git就没法干净的合并它们。如果你对#53问题的修改和有关hotfix分支的修改都涉及到同一个文件的同一处,在合并它们的时候就会产生合并冲突:
在这里插入图片描述
在这里插入图片描述

解决冲突

冲突就是你对一个文件进行了两种不同的修改,这是和就没办法进行合并,需要自己决定需要使用或者丢弃那个文件.
在这里插入图片描述
在这里插入图片描述

解决提交

在这里插入图片描述
在这里插入图片描述

分支管理

如何查看已有分支

git branch
git branch 命令不只是可以创建与删除分支。 如果不加任何参数运行它,会得到当前所有分支的一个列表:
在这里插入图片描述
git branch -v
–merged 与 --no-merged 这两个有用的选项可以过滤这个列表中已经合并或尚未合并到当前分支的分支。
如果要查看哪些分支已经合并到当前分支,可以运行 git branch --merged:
在这里插入图片描述

在这里插入图片描述

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:47:16  更:2022-03-24 00:47:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:23:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码