《Git 原理详解及实用指南》阅读笔记

Git原理架构详解 Git是什么?Git是一个开源分布式版本控制系统,可以高速并且有效的处理很小到非常大的项目版本管理。Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开源版本控制软件什么是版本控制?版本控制一般是指程序开发过程中的代码版本,配置文件及说明文档等文件修改变更的管理,版本控制最主要的功能就是追踪文件的修改变更等操作,称之为版本控制!例子-代码公司研发部门接到老板要求开发一套为公司内部运营人员所使用的内部管理系统,公司研发有主管、小张、小王、小徐等四人,项目需求初步定为此套系统需要20 阅读详情

用于记录阅读 Git 原理详解及实用指南 之后的笔记备忘。


  1. git merge some_branch 的意思是将 some_branch 这一分支与 HEAD 指向的某一分支合并, HEAD 指向的可以是 master ,也可以是其他 branch
  2. 当只需要合并某一分支的特定部分的 commits 到另一分支时,就可以参考 Git合并特定commits 到另一个分支 这篇文章。根据这篇文章,可以知道,以下图为例,可以只把 5 合并到 master 上,这时 master 上就会出现一个新的 commit 点,使用 git cherry-pick params( params 可以是多个参数,中间用空格隔开就行,记得要先切换到目标分支)
    这里写图片描述
    合并之后,如下图,出现一个新的 commit 点,但是原来 branch1 上的 5 还是会存在。
    这里写图片描述
    而如果需要合并 branch1 上的 6 到 7 的到 master 的话(即合并一连串到 commits),就需要先以 branch1 为基础,新建一条分支(假设为 tmp_branch,且要注意先切换到 branch1 分支),使用的命令为
    git checkout -b tmp_branch 7的引用或者SHA-1码(这里的命令在新建了分支之后会直接切换到该分支)
    然后使用命令
    git rebase --onto master 6的引用或者SHA-1码^(这里要注意别落下了 ^ 符号,如果少了就会只把 7 合并到 master,即目标 commit 之后的)
    然后又要切回到 master ,执行
    git merge tmp_branch
    这样就可以了,之后再把 tmp_branch 分支删除即可。(其实这里的操作本质上是涉及到了 git rebase)

  3. git reset --soft HEAD^ 中除了 HEAD 和它所指向的 branch1 被移动到 HEAD^ 之外,原先 HEAD 处 commit 的改动也会被放进暂存区,注意到这里是会被存放到暂存区(就相当于执行了 add 但未执行 commit 的状态),然后如果再次commit 到话就又会恢复 reset 之前到样子,除了 commit 时填写的提交信息与 commit 提价后对应的 SHA-1 码会不同。
    而 --mixed 是相当于执行 add 之前的状态,但是工作区的变化还是在(比如新增了一个文件,commit 之后执行 git reset --mixed HEAD^,文件还是在,但是需要重新 add)。
    而 --hard 会把工作区的改动也清空(比如新增了一个文件,commit 之后执行 git reset --hard HEAD^, 新增的文件也会被删除)。

  4. 使用 stash 临时存放工作目录的改动,这里需要注意,是临时存放被 add 但是未被 commit 的。

Git 原理详解及实用指南.zip git的原理详解和实用指南,是开发的实际经验终结与提炼。 立即下载

相关推荐

UE4逆向实战:如何快速定位UWorld和GName的5种实用技巧(含版本差异分析)

本文详细介绍了UE4逆向工程中快速定位UWorld和GName的5种实用技巧,包括特征码定位法、动态行为分析法、静态符号分析法等,并针对不同版本差异提供了适配方案。特别强调了UWorld作为游戏世界核心容器和GName作为名称管理系统的重要性,帮助开发者高效进行游戏逆向分析。

star的博客 899

git 原理简介

文章目录关于版本控制分为三种版本控制方案本地版本控制集中化的版本控制分布式版本控制 关于版本控制 什么是“版本控制”?我为什么要关心它呢? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 在本书所展示的例子中,我们对保存着软件源代码的文件作版本控制,但实际上,你可以对任何类型的文件进行版本控制。 作用: 如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版本(这或许是你非常渴望拥有的功能),采用版本控制系统(VCS)是个明智的选择。 有了它你就

安梓晨的博客 8068

F280049C_HRPWM_死区时间高精度控制与MEP技术实战解析

本文深入解析了F280049C的HRPWM模块及其基于MEP技术的死区时间高精度控制。通过实测数据与TI官方代码对比,详细阐述了DBREDHR和DBFEDHR寄存器的配置技巧、精度优化方法及常见问题调试,为电源管理和电机控制应用提供了实用的实战指南。

yolo5detector的博客 217

Git基本原理及常用操作全集(超详细)

1)Git和SVN是我们最常用的版本控制系统(Version Control System, VCS)2)Git三大区域的划分(详见下文Git基本原理)工作区:能够看见的目录暂存区:也叫Index、Stage,通常存放在.git/index文件下版本库:分为本地版本库和远程版本库3)版本库状态几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着可以把我们的工作从开发主线上分离开来,以免影响开发主线分支是一个代码的副本;

Java/Python大数据随笔 1845

在 CentOS Stream 10 上搭建 Kubernetes 集群并支持开发调试与日志查看

搭建 Kubernetes 集群的每个步骤详细的文档。

灵犀物润 1646

C# 量子级跨平台开发:用Uno Platform实现Windows、iOS、Android的“量子纠缠”UI同步

墨瑾轩推出编程学习平台,通过XAML的“量子纠缠”技术,实现跨平台开发的高效与一致性。传统方案中,多平台代码重复率高,UI差异大,而量子级方案则通过一套代码构建全平台应用,UI原子化同步,开发效率提升5倍。Uno Platform的“量子纠缠”架构解决了代码碎片化、性能瓶颈和调试难题,实现UI原子化同步、性能提升300%和跨平台数据无缝同步。核心架构包括XAML的跨平台渲染、MVVM的量子叠加态架构、平台差异的量子退相干处理以及性能优化的量子隧穿效应,为开发者提供高效、一致的跨平台开发体验。

java专栏 1165

Git概念及工作原理总结

Git是分布式版本控制系统。Github和华为等均使用Git作为代码管理工具。之前在工作中比较常用到的是克隆、代码提交拉取、解决回合冲突、代码回滚等。在实际的工作中,可能回合时冲突及版本回退的情况较多,下文将着重介绍这两点。本文不涉及Git的安装等,主要以介绍概念及原理为主。 个人感觉使用Idea内置的git比通过Git Bash使用Git命令要方便且易操作。 一、Git基本概念 工作拷贝(工作目录):用于存放产品开发数据本地工作目录。 索引(Index):用于存放待提交数据的缓存区。 本地库:远端库的一

Luffy的博客 5517

【kubernetes】kubernetes kubeadm init 错误了 怎么回退?

因为虚拟机设置问题首先报错:然后我根据文章修改了核数。重启后,查看VIP运行所在机器,发现机器没有变化然后重新执行初始化后面报错了根据提供的信息,问题主要集中在 kubelet 未能成功启动控制平面组件,导致初始化过程超时。以下是可能的原因及相应的排查步骤:原因 1:kubelet 未运行或运行状态异常正如错误提示所指出,kubelet 可能未运行或处于不健康状态。请按照提示执行以下命令检查 kubelet 的状态和服务日志:根据输出结果,判断 kubelet 是否正常运行。后续一大堆错误。

九师兄 121

【Git】万字详解 Git 的原理与使用(上)

本期内容主要介绍 Git 是什么,如何安装,以及一些常用的命令~

爱编程爱运动的博客 4974

论文阅读:Training language models to follow instructions with human feedback

这篇论文的目标是通过引入一种基于人类反馈的训练方法,来让语言模型更好地按照用户意图行事。这是因为大规模语言模型虽然强大,但有时候会生成不准确、有偏见或者对用户无帮助的内容,这说明它们和用户的需求之间存在一定的“错位”。论文提出了一个新方法,将 GPT-3 进行优化,称为示例数据与监督学习:让人类标注员生成一些正确行为的示例,并使用这些示例来初步优化模型。比较数据与奖励模型:让标注员比较模型生成的多个输出,并将其排序,从中学到模型输出的优劣规则。强化学习优化:基于这些规则,使用强化学习算法进一步优化模型。

CSPhD-winston的博客 1717

三臂杆大型液压机械臂集中式ADRC控制系统设计

本文设计了一种用于三臂杆液压机械臂的集中式自抗扰控制(ADRC)系统。该系统通过建立包含惯性矩阵、科氏力、重力及摩擦力的非线性动力学模型,并集成液压系统传递函数,构建了完整的系统模型。控制方案采用跟踪微分器安排过渡过程,扩张状态观测器实时估计系统状态和总扰动,以及非线性状态误差反馈生成控制量。MATLAB实现展示了集中式ADRC控制器的核心结构,包括参数定义、跟踪微分器、扩张状态观测器和非线性反馈模块的设计。该系统能有效处理多关节耦合效应,实现三输入三输出的MIMO控制,具有抗干扰能力强、响应速度快的特点。

huanghm88的专栏 271

git 原理详解及实用指南_Git的实用学习练习

git 原理详解及实用指南 为了尝试使用Git进行练习,我开始在Opensource.com上阅读文档和此处的一些文章,特别是Seth Kenlon的介绍。 阅读完之后,该进行一些实际练习了。 像许多计算机科学专业的本科生一样,我也完成了编程作业和实验。 我保存了所有这些工作,那么为什么不使用此代码创建练习Git存储库呢? 然后,我可以运行代码并解决所有问题,这将使我练习进行提交和创建分支。...

cumj63710的博客 389

RK3399平台开发系列讲解(内核入门篇)1.1、通过sysfs清楚了解设备的系统状况

文章目录1、不敢高声语,恐惊天上人:sysfs目的2、窥一斑而知全豹:sysfs目录介绍3、千丝万缕:sysfs中要素的关系4、数据观星:sysfs中相关结构体 1、不敢高声语,恐惊天上人:sysfs目的 我们想通过sys下面的目录和文件清楚的了解跑Liunx系统的嵌入式设备的系统状况。 2、窥一斑而知全豹:sysfs目录介绍 sysfs把连接在系统上的设备和总线组织成为一个分级的文件,它们可以由用户空间存取,向用户空间导出内核的数据结构以及它们的属性。sysfs的一个目的就是展示设备驱动模型中各组件.

内核笔记 1万+

一天彻底搞懂 Git 《Git 原理详解及实用指南》

我是扔物线,Android 开发者,开源贡献者,在 GitHub 上有 4.9k followers 和 7.8k stars ,个人的 Android 开源库 Mate...

codehole_的博客 1115

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Git详解之九:Git内部原理

现在你应该对 Git 可以作什么相当了解了,并且在一定程度上也知道了 Git 是如何实现的。本章覆盖了许多 plumbing 命令 ── 这些命令比较底层,且比你在本书其他部分学到的 porcelain 命令要来得简单。从底层了解 Git 的工作原理可以帮助你更好地理解为何 Git 实现了目前的这些功能,也使你能够针对你的工作流写出自己的工具和脚本。Git 作为一套 content-addressable 的文件系统,是一个非常强大的工具,而不仅仅只是一个 VCS 供人使用。

多媒体开发者 1182

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

QOwnNotes Git 版本控制(Git Versioning)完整指南:为笔记开启本地自动提交与历史追溯

QOwnNotes 内置了基于 Git 的本地版本控制能力:你可以让应用自动把笔记文件夹中的每次修改提交到该文件夹内的本地 Git 仓库,从而获得笔记的完整历史版本,随时回溯与对比。本文将完整介绍如何在「通用设置」中配置 Git 版本控制、如何为笔记文件夹单独开启 Git 支持,并结合 [src/utils/git.cpp](https://link.gitcode.com/i/2a9a370d1

gitblog_00715的博客 218

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

git revert 单个文件_这才是真正的Git——Git实用技巧详解

作者:lzaneli,腾讯 TEG 前端开发工程师本篇是这个系列的最后一篇文章,之前的文章主要讲的是基础原理部分(见上方专辑),在理解原理的基础上,介绍一些实用的技巧给大家,希望能提高大家的开发效率。这篇文章因为更多的是列举实际应用的技巧,所以文章结构会显得散乱一些,也不会像前两篇文章那样要求大家顺序阅读。每个点都是互相独立的,大家可以根据自己的需要学习。在这篇文章里我会使用操作录屏的方式来介绍例...

weixin_39704246的博客 3836

Git详解之九 Git内部原理

Git 内部原理 不管你是从前面的章节直接跳到了本章,还是读完了其余各章一直到这,你都将在本章见识 Git 的内部工作原理和实现方式。我个人发现学习这些内容对于理解 Git 的用处和强大是非常重要的,不过也有人认为这些内容对于初学者来说可能难以理解且过于复杂。正因如此我把这部分内容放在最后一章,你在学习过程中可以先阅读这部分,也可以晚点阅读这部分,这完全取决于你自己。 既然已经读到这了,就让我

andy_android的专栏 3913

git源码阅读

https://github.com/git-for-windows/git/issues/1854 https://github.com/git-for-windows/git/pull/1902/files 分了2步操作,第一步是git reset,第二部是git cherry-pick --continue https://github.com/git-for-windows/g...

weixin_30924087的博客 317

阅读 git 最初版源码总结

git clone https://github.com/git/git.git git log --reverse git checkout e83c5163316 sudo apt install zlib1g-dev sudo apt install libssl-dev Makefile 中的 LIBS 变量添加 -lz -cyrpto,如下 LIBS= -lssl -lz -lcrypto init-db: Initializes a new Git repository. Equiva

m0_47696151的博客 3027

git revert 单个文件_这才是真正的Git——Git实用技巧

作者:lzaneli,腾讯 TEG 前端开发工程师本篇是这个系列的最后一篇文章,之前的文章主要讲的是基础原理部分(见上方专辑),在理解原理的基础上,介绍一些实用的技巧给大家,希望能提高大家的开发效率。这篇文章因为更多的是列举实际应用的技巧,所以文章结构会显得散乱一些,也不会像前两篇文章那样要求大家顺序阅读。每个点都是互相独立的,大家可以根据自己的需要学习。在这篇文章里我会使用操作录屏的方...

weixin_39575410的博客 6444

git总结-git存储原理

之前项目都是使用svn,svn比较简单。后来换了项目使用git,有点不方便。经过一段时间学习,现在总结一下。 先说svn存储原理,下面画了一张svn存储原理图。 优点: 便于操作 缺点:服务器单点故障,会丢失代码,容错性差,下载速度慢   一、git的存储原理     1.git记录整体的变化 git的每个版本都一份完整的代码,每次修改后都会把修改的文件重新保存一份,吐过没有修改...

lingFei_y的博客 1569

QOwnNotes Git 版本管理:为笔记文件夹启用本地 git 自动提交与版本查看

QOwnNotes 内置的 Git 版本管理功能可以在本地为每个笔记文件夹自动维护 git 仓库,将笔记的每次变更按固定间隔自动提交,从而在不依赖云服务的情况下获得完整的笔记历史版本。本文以官方入门文档为基础,结合 QOwnNotes 仓库源码,详细讲解 Git 版本管理的开启步骤、全局参数含义、底层实现原理,以及如何查看单条笔记的版本历史。 ## 功能概览:本地自动提交的笔记历史 Git 版

gitblog_00629的博客 183

Git详解之九 Git内部原理

Git详解之九 git内部原理 Git内部原理 不管你是从前面的章节直接跳到了本章,还是读完了其余各章一直到这,你都将在本章见识 Git的内部工作原理和实现方式。我个人发现学习这些内容对于理解 Git的用处和强大是非常重要的,不过也有人认为这些内容对于初学者来说可能难以理解且过于复杂。正因如此我把这部分内容放在最后一章,你在学习过程中可以先阅读这部分,也可以晚点阅读这部分,这完全取决于

u012426327的专栏 421
上一篇: HenCoder系列2-3小节知识点备忘——定制Layout(ViewGroup)的内部布局
下一篇: 单例模式——相关博文收集
OneDeveloper
博客等级 码龄9年 61粉丝 161原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值