git基本概念之引用、符号引用、提交历史记录、提交范围

  1. 引用和符号引用
    引用(ref)是一个SHA1值,指向Git对象库中的对象。虽然一个引用可以指向任何Git对象,但是它通常指向提交对象,符号引用(symbiolic reference)或称为symref,间接指向Git对象,它仍然是一个引用。本地特性名称、远程跟踪分支名称和标签名都是引用。
  2. 几个特殊的符号引用
    HEAD 始终指向当前分支的最近提交,当切换分支时,HEAD会更新为指向新分支的最近提交
    ORIG_HEAD 某些操作,例如合并(merge)和复位(reset)会把调整为新值之前的先前版本的HEAD记录到ORIG_HEAD中,可以使用ORIG_HEAD来恢复或回滚到之前的状态或做一个比较。
    FETCH_HEAD 当使用远程库时,git fetch 命令讲所有抓取分支的头记录到.git/FETCH_HEAD中。FETCH_HEAD是最近抓取分支HEAD的简写,并且仅在刚刚抓取操作之后才有效。使用这个符号引用,哪怕是一个对没有指定分支名的匿名抓取操作,都可以在git fetch 时找到提交的HEAD。
    MERGE_HEAD 当一个合并操作正在进行时。其他分支的头暂时记录在MERGE_HEAD中。换言之,MERGE_HEAD是正在进行合并进HEAD的提交。
  3. 提交历史记录
    显示提交历史记录的主要命令是git log,如果你提供一个提交名(如git log commit),那么这个日志将从该提交开始回溯输出。另一个查看对象库中对象信息的命令是git show。可以使用它来查看某个提交
  4. 提交图
    提交图是一种有向无环图(DAG),使用gitk和git show-branch可以将历史记录图形象的表现出来。
  5. 提交范围
    用双句点(..)表示,如“开始..结束”,返回结果的时候,就是“结束”提交包含在内,而“开始”提交被排除在外,如A..B(等价于^A B)用集合方法来讲就是用B之前的所有提交减去A之前的所有提交且包括A,。另外还有两种范围等价表示方式,如果省略start或end,就默认用HEAD代替,因此,..end等价于HEAD..end,start..等价于start..HEAD。三个句点如A...B表示A和B之间的对称差。就是A和B可达但又不是A和B同时可达的提交集合。

猜你喜欢

转载自blog.csdn.net/dream_follower/article/details/80808202