zoukankan      html  css  js  c++  java
  • git知识总结-1.git基础之git reference

    1.前言

    Git版本管理的内容,是一系列由40bytes SHA-1字符串所代表patch,而Git References,则是对这些字符串的引用(也可以理解为别名)。为什么需要别名呢?因为这些字符串太难记了!根据使用场景的不同,Git References分为四类:

    2.git references

    2.1 指向最后一次提交的reference(分支名)

    这类reference以“refs/heads/”为前缀,例如“refs/heads/master”,实际就是git分支,git分支指向某一个commit。正因为此,各种分支名的全称应该是(省略refs字段):

    heads/master 
    heads/bX 
    heads/bY

    不过由于Git默认分支类reference的前缀是“refs/heads/”,因此平时操作分支的时候,可以把“heads”省去。

    2.2 指向当前分支的reference(HEAD 标记)

    这个reference比较特别,它没有指向某一个SHA-1字符串,而是指向当前正在工作的分支名,如指向refs/heads/master

    因此,HEAD标记就是当前分支的标记,具体可以参考2.1小节的介绍。

    2.3 指向某一个tag的reference

    这类reference以“refs/tags/”为前缀,指向git仓库某一个tag。

    有关git tag的知识,后面用到的时候再介绍。

    2.4 指向远端仓库最后一次提交的reference(远端分支)

    这类reference以“refs/remotes/”为前缀,指向远端仓库某个SHA-1字符串的标记(也即远端分支),其格式为:

    refs/remotes/远端仓库名(如origin)/远端分支reference名(如master)

    因此,平时我们操作远端分支的时候,所操作的分支名为(以远端master分支为例):

    remotes/origin/master

    其实就是省略掉refs字段的reference名称。

    总结:知道了这4类reference的含义,以及命名方式之后,我们对各类git名称,会有更深刻的理解。

    补充:一些Git保留使用的特殊refs:

      • HEAD,指向当前本地分支的当前commit状态
      • FETCH_HEAD,指向当前本地分支在最近一次fetch操作时得到的commit状态
      • ORIG_HEAD,指向任何merge或rebase之前的刚刚检出时的commit状态
  • 相关阅读:
    跨域名登录态传递
    ECC公钥格式详解
    企业应用架构演化探讨:从微服务到Service Mesh
    阿里云宕机故障
    一个“三无管理者”的思考
    如何构建安全的微服务应用
    微服务架构实践
    Redis持久化之RDB
    Redis持久化persistence
    Redis 缓存失效和回收机制续
  • 原文地址:https://www.cnblogs.com/smartjourneys/p/9621624.html
Copyright © 2011-2022 走看看