git学习笔记(九)--git的历史查询
这部分简要总结一下git中查询使用的几个命令:
1.git rev-parse命令
git rev-parse是一个底层命令,主要用于显示,功能非常多,后面可以带很多参数,例如:
显示分支 git rev-parse --symbolic --branches
显示里程碑 git rev-parse --symbolic --tags
但是最常用的功能就是将一个git对象或者对象表达式转换成其对应的SHA1哈希值。
为了方便,先设置了一下别名: git config --golbal alias.rp rev-parse
- git rp HAED //显示HEAD对应的哈希值
- git rp master //显示master分支指向的当前提交的ID
- git rp A //这里A是tag,显示tag对象的ID,注意是对象,tagA实际指向的是一个tag对象而非提交
- git rp A^0 //显示A所指向的提交的ID
- git rp A^1 B^0 //A的第一个父提交就是B的提交,假设AB都是tag且有先后顺序
- git rp A^{tree} //显示A对应的树的ID
2. git rev-list命令:
rev-list命令用于研究git各种版本范围,根据某个tag或者提交来追踪其历史渊源,用于分析版本的内部结构
假设已经有tag :A,B,C,D,E,F,G 设置了别名rl == rev-list
- git rl A //一个提交ID代表一个版本列表,显示该版本的所有历史提交
- git rl ^G D //符号(^)表示排除这个版本及其历史版本,这里表示列出D版本历史,并不显示其中涉及的G版本的内容
- git rl B..C //相当于git ^B C
- git rl C..B //相当于git ^C B
- git rl B^@ //排除自身,只显示其历史
- git rl B^! //排除其历史,只显示自身
3. git log命令:
1. git log命令后面可以接表示版本范围的参数,比如上述的 F^! 或者^F,当不适用任何参数时候,默认为使用了HEAD
2. git log分支图显示参数: --graph 例如,git log --graph master
3. git log显示最近几条日志的参数: -n 例如,git log -3 master
4. git log显示每次提交的变更参数:--stat 例如,git log --stat I..C
5. git log的输出定制:
① --pretty=raw //显示commit的原始数据,包括tree ID
② --pretty=fuller //同时显示作者名和提交者名
③ --pretty=online //显示最精简的日志输出
6. git log查看分析某一个提交(上述参数可以根据需要添加):
① git show ID
② git cat-file ID
浙公网安备 33010602011771号