揭开Git分支的面纱

【Git 分支整合的艺术:岔路与归途的抉择 ——merge 与 rebase 深度解析】 git merge 与 git rebase 作为两种主流的分支整合工具,看似功能相似,却隐藏着对代码历史截然不同的哲学思考。 阅读详情

Branches in a Nutshell

Branching means you diverge from the main line of development and continue to do work without messing with that main line

Git can change the way that you develop

  • 每一次stage、commit背后,Git都做了些什么?

A branch in Git is simply a lightweight movable pointer to one of these commits. The default branch name in Git is master. As you start making commits, you’re given a master branch that points to the last commit you made. Every time you commit, the master branch pointer moves forward automatically.

How does Git know what branch you’re currently on? It keeps a special pointer called HEAD

1.分支是什么?

Branching means you diverge from the main line of development and continue to do work without messing with that main line

2 揭秘每一次stage、commit背后故事

when you stage:

  1. Staging the files computes a checksum for each one

  2. stores that version of the file in the Git repository (Git refers to them as blobs),

  3. adds that checksum to the staging area

when you create a commit

  1. stores blobs as a tree object
  2. create a commit object
  3. ``commit object 存储着对tree object`的引用以及此次提交的其他信息

在这里插入图片描述

3 Git中的branch

A branch in Git is simply a lightweight movable pointer to one of these commits.

如下面的testing分支

How does Git know what branch you’re currently on? It keeps a special pointer called HEAD

HEAD指针指向当前所在分支,切换分支,就是将HEAD指针指向该分支

在这里插入图片描述

4 Git分支的基本操作

  1. 创建分支

    git branch 分支名

  2. 删除分支

    git branch -d 分支名

  3. 切换分支

    git checkout 分支名

  4. 创建并切换分支

    git checkout -b 分支名

  5. 查看各个分支log

    git log --oneline --decorate --graph --all

    git log默认是查看当期分支下的log

更多讨论:https://github.com/pluscai/use-git/issues/22

git-branch-select:用于交互式分支列表,选择和签出的Git插件 git-branch-select 存储库中的交互式(本地)分支选择。 通过安装 $ npm install --global git-branch-select 用法 $ git branch-select [options] [search] # Alias it in your .gitconfig for added convenience, # for example: bs = branch-select Options: --version, -v Show version --help, -h Show usage help --local, -l List local branches only --remote, -r List remote branches only --tags, -t List tags ~/C/node-bencode (bignum-support) $ git branch-select ? Select a branch: 立即下载

相关推荐

基于知识图谱的职位推荐系统的设计与实现

在职位推荐系统中,实体可以包括职位、公司、技能等,而关系可以包括职位与公司的关联、职位与技能的关联等。基于知识图谱的职位推荐系统可以提供更加智能和精确的职位推荐服务。通过收集和预处理数据构建知识图谱,并设计推荐算法和用户界面,可以实现一个完整的职位推荐系统。通过利用知识图谱技术,我们可以构建一个更加智能和精确的职位推荐系统。本文将介绍如何设计和实现基于知识图谱的职位推荐系统,并提供相应的源代码。通过定义实体和关系的节点和边,可以将数据存储在图数据库中,并建立它们之间的关系。

RiqaEditor的博客 1668

Commit 和Stage

<br />Stage 和 Commit 具体做什么?<br /><br /> 在Production Build 完了之后,需要做stage 和commit,那么stage 和commit具体做些什么呢?<br /><br /> Stage的步骤:<br /> 首先需要获取build的output,将其download到你stage所选择的机器。<br /><br /> 这个build的output是来自production Build的输出。至于需要获取那些output根据你具体的项目的要求。比

从菜鸟到菜菜鸟 2649

Android GWP-Asan机制详解

基本用途:GWP-ASan是一种原生内存分配器功能,在内存分配时额外记录一些信息,用于检测DOUBLE_FREE、USE_AFTER_FREE、INVALID_FREE、BUFFER_OVERFLOW、BUFFER_UNDERFLOW五种内存错误问题。

专注于系统快稳省领域 4145

git diff:对比working tree、stage、commit文件之间的不同

摘要:在使用git的时候,我们经常需要查看当前工作目录、stage、和commit三种文件状态之间的差异,从而决定如何操作。为了达到这一目的,我们需要熟练使用git diff命令. 本文来源:git diff:对比working tree、stage、commit文件之间的不同 1.说明 git-diff - Show changes between commits, com

河西无名式 7969

Centos7 XFS(dm-0):Internal error XFS_WANT_CORRUPTED_GOTO

在k8s的道路上我们都是小白,每天启动虚机都会遇到各种各样的问题,这不。部署的k8s虚机启动发现操作系统启动异常,提示如下报错信息。进入/dev/mapper目录下,查询目录下路径信息。可以通过对文件系统进行修复操作,操作如下。重启完成后虚机恢复正常登录。

hedao0515的专栏 4583

Windows下的Geant4安装教程

本教程将从0开始展示在Windows下如何安装Geant4,包括各种辅助工具(QT、Cmake、Visual Studio)的下载安装,环境变量的配置,以及example的生成等。

weixin_49065278的博客 4113

git图解。通俗易懂

git推荐看廖雪峰的那个教程。入门很快。但是毕竟有些不直观。这时候可以看一下这一篇图解。会有更深的理解。 此页图解git中的最常用命令。如果你稍微理解git的工作原理,这篇文章能够让你理解的更透彻。 基本用法 上面的四条命令在工作目录、stage缓存(也叫做索引)和commit历史之间复制文件。 git add files 把工作目录中的文件加入

Hello world! 4572

C#+Winform+OpenCvSharp实战:5步搞定工业视觉检测框架(附源码下载)

本文详细介绍了如何使用C#、Winform和OpenCvSharp构建工业视觉检测框架,通过5个关键步骤实现高效、稳定的视觉检测系统。内容涵盖环境配置、相机集成、核心算法实现、系统集成与通信,以及部署优化,帮助开发者快速掌握工业视觉检测技术,提升检测精度和效率。附完整源码下载,助力工业数字化转型。

pz89012345的博客 551

Git & GitHub入门3:修改文件后提交(modify, stage, commit)

运行git add Practice-BaiduBaike.py 表示我们希望将保存修改后的Practice-BaiduBaike.py文件。现在我们可以使用git commit命令提交修改了。修改这个文件,在其中加一行注释后保存。用atom 打开当前目录下的文件。...

学习struts,html,js,ajax 671

整车的智能配电系统

本文探讨了汽车电网安全的重要性,分析了传统汽车电网的现状,并重点介绍了半导体在汽车智能配电系统中的作用。半导体凭借其单向导电性和可控性,如二极管、MOSFET等,提供了更高效、安全的电力控制。通过对比传统保险丝与半导体器件,阐述了半导体在过流保护、电压监测和故障诊断方面的优势,强调其在减少安全隐患、提高能源管理和续航里程方面的贡献。极氪智能配电系统展示了如何运用半导体技术实现整车能源的精细化管理,降低维修成本,减少线束复杂性,提升安全性能。

让你爱上电路设计 1612

Android 12 系统横屏时,开机动画有两秒显示不全

平板系统默认横屏时,开机会旋转90度,显示的分辨率WxH,会变成HxW.但又会很快被SurfaceFlinger的SurfaceFlinger::processDisplayChanged 娇正。所以为了保险,可以在开机动画没结束之前,禁止旋转事件。在Android 12 产品定制化开发中,由于系统默认方向为竖屏,平板电脑要横屏显示。系统在开机时,有时因为旋转,会出现动画只显示一部分。

448313096@qq.com 1183

Git三大特色之Stage(暂存区)

这是开篇 有人说,暂存区是 Git 最精彩的设计,同时也是最难理解的部分,两者我都感觉不太明显,但当我想写关于暂存区的理解后,发现的确不怎么好讲,这个玩意,有点只可意会的感觉,用 Git 用熟练了,很自然体会到暂存区设计的精彩之处。 在我看来,学习其他命令之前,对暂存区有一个概念和大概理解是非常重要的,因为,很多命令都涉及到了它。 为什么 commit 之前要先 add 一下呢? 我在...

浅浅同学的开发笔记 11万+

微信小程序 - 下单账号和支付账号不一致,请核实后再支付(微信小程序或微信H5页面/微信公众号网页支付时报错:“下单账号和支付账号不一致,请核实后再支付”,买家微信支付时提示错误)详细排查和解决方案!

微信支付出现 “下单账号与支付账号不一致,请核实后再支付”微信小程序下单账号与支付账号不一致不让支付,微信公众号网页 微信H5页面JS-SDK支付时出现错误:下单账号和支付账号不一致,请核实后再支付,openId导致的微信中“下单账号和支付账号不一致”原因及解决办法,调用统一下单所传openId与实际支付用户的openId不一致,微信支付jssdk报错,检查了没有不一致依然报错怎么办,微信支付下单账号和支付账号不一致,请核实后再支付,微信支付功能用JSAPI支付,H5页面负责下单并支付jsapi,微信调起支

🏆 前端领域优质创作者 5336

手把手教你玩转Git冲突解决:从“头大“到“真香“的奇妙旅程

(终极提示)记住:没有解决不了的冲突,只有不愿沟通的程序员。当你熟练掌握了这些技巧后,甚至会爱上解决冲突的过程——那种把混乱变有序的成就感,正是编程的魅力所在!凌晨3点的办公室,此起彼伏的"我又冲突了!所以下次看到冲突提示时,不妨笑着对它说:“又到了展现真正技术的时刻!)当你的小伙伴和你同时修改了同一段代码时,Git就会露出困惑脸:“两位大佬,你们到底要听谁的?的标记千万别慌,这正是Git在说:“这里有两套方案,老板您看着办!是楚河汉界,上半部分是当前分支代码,下半部分是合并过来的代码。

charliedev的博客 1166

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

linux git查看当前代码head地址_揭开git的神秘面纱

一、为什么要使用Git?1.传统文档管理在我们写毕业论文时可能会遇到,多次修改之后的论文命名方式:论文_改.doc、论文_改改.doc、论文_改改改.doc、论文_改改改改.doc、论文_改改改改再改.doc、 论文_改改改改再改TM不改了.doc2.源代码管理的好处方便多人协同开发方便版本控制3.Git的诞生 作者Linux之父:Linus Torvalds git开发目的:为了辅助Linux内...

weixin_34369521的博客 3550

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

揭开git的面纱--git 原理

一、Git对象 Git对象一共有4种:blob数据对象、tree树对象、commit提交对象、tag标签对象; blob对象会把二进制文件进行压缩存储,并输出一个(唯一的)40位hash值作为key git会把压缩内容存储在 objects 文件夹下,并以对应的key值40位的前两位hash值作为文件夹名,后38位作为文件名; git是全量快照存储,而非增量存储; blob对象的hash值与文件名无关; 故blob对象无法存储文件信息; tree对象可以解决文件名保存的问题, 并且使得项目的多个文件也组织

biubiu640的博客 1065

Git——揭开Git的神秘面纱,新手向Git详细使用,你的小伙伴会很开心

一、Git是什么? Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。 简单来说,假如几个小伙伴同时编写一篇文章。那么,如果每个人写完一个版本,就有好几个版本,本着择优使用的原则,要找到每个版本的不同地方进行比较、修改,最后得到最终版,

weixin_43466783的博客 933

企业员工基本功?来揭开 Git仓库 的面纱

一、引言 在单人开发过程中,需要进行版本管理,以利于开发进度的控制。 在多人开发过程中,不仅需要版本管理,还需要进行多人协同控制。 二、介绍 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git可以使用本地创建仓库与网络仓库,解决了集中管理型版本控制软件存在的一些问题(例如:SVN)。 官网:Gi

来一杯Java咖啡 494

Git 分支管理策略与实践

Git 分支管理策略与实践

1158

揭开git的神秘面纱

前言:今天,闲来没事,我想为大家分享一下git的基本概念,以及git的初级语法,讲的不好,希望大家不要介意哈。GIT:什么是git了  Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用...

hirezy 891

揭开 Git 裸仓库的神秘面纱:`git clone --mirror` 详解与使用指南

裸仓库是 Git 的一种特殊形式,它只包含 .git 目录的核心数据,没有工作目录。它不能用于直接开发,主要用作中心化的代码集散地或仓库的完整备份。

十年运维开发经验的王义杰在此分享自己的知识和经验 1894

as上的git到码云操作_揭开git的神秘面纱

一、为什么要使用Git?1.传统文档管理在我们写毕业论文时可能会遇到,多次修改之后的论文命名方式:论文_改.doc、论文_改改.doc、论文_改改改.doc、论文_改改改改.doc、论文_改改改改再改.doc、 论文_改改改改再改TM不改了.doc2.源代码管理的好处方便多人协同开发方便版本控制3.Git的诞生 作者Linux之父:Linus Torvalds git开发目的:为了辅助Linux内...

weixin_28994935的博客 113

深入浅出git(二)——分支

在开发软件的时候,可能很多人会同时为同一个软件开发功能或者修复bug,但是如果都在主分支来进行开发,引起冲突的概率将会大大增加,而且也不利于维护,如果你同时修改多个bug该怎么办?所幸,git的分支功能很好的帮助我们解决了这个问题,它可以帮助我们同时进行多个功能的开发和版本管理. 请在阅读这篇文章之前,务必先阅读深入浅出git——数据模型,这样才能更好的帮助你理解git中的分支.想知道为什么git...

zy353003874的博客 686

怎样通过Git下载指定分支上的DeepSeek代码?

在软件开发与数据探索的广阔世界里,"DeepSeek"作为一个备受瞩目的项目,承载着无数开发者与数据科学家的智慧与梦想。想要深入探索这个项目的奥秘,首要任务便是获取其源代码。幸运的是,Git这一强大的版本控制系统为我们提供了便捷的途径,让我们能够轻松下载并跟踪"DeepSeek"指定分支上的代码更新。无论是对于初学者还是资深开发者,掌握通过Git下载指定分支代码的技能都是必不可少的。

Start_mswin的博客 924

Git 分支操作全解析:创建、切换、合并、删除及冲突解决

管理代码的时候,在集中式管理(比如SVN)中会创建Trunk、Branches、Tag等一些目录,分别放置开发代码、代码分支以及代码的里程碑。那么在 Git 中也使用分支和tag来管理代码。分支就是就是一个代码的副本,可以基于分支进行独立开发。比如我们创建 Bug 分支或者 Feature 分支,等开发好了再合并到主干上。

u012374012的专栏 2149

git获取到本地文件夹_git – 存储本地分支的文件在哪里

在项目根目录中有一个隐藏的文件夹.git(当你运行git init或者初始化一个存储库时它会被创建),其中git存储了所有的“魔法位”.它并不是非常神奇 – 有一个HEAD文本文件,说明“head”所在的位置(例如当前检出分支或提交),refs目录中包含更多目录,这些目录包含与本地和远程分支名称相对应的文件 – 每个目录都是文件只是一个带有提交SHA的文本文件(就像一个字典,当你说“检出主分支!”...

weixin_39639698的博客 2363
上一篇: Git如何管理远程仓库分支?
下一篇: Git分支管理和常见的分支工作流
小菜101
博客等级 码龄10年 16粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值