版本库中有多少次提交:git rev-list HEAD |wc -l
版本表示法:git rev-parse
显示分支:git rev-parse --symbolic --branches git branch
显示里程碑:git rev-parse --symbolic --tags
显示定义的所有引用:git rev-parse --symbolic --glob=refs/*
将git对象表达式表示为对应的SHA1哈希值:git rev-parse HEAD master
里程碑两种表示法均指向相同的对象:git rev-parse A refs/tags/A
显示提交本身的hash值: git rev-parse A^{} A^0 A^{commit}
A^相当于A^1
A^0代表了A所指向的一个Commit对象
显示里程碑A对应的目录树
git rev-parse A^{tree}
显示树里面的文件
git rev-parse A^{tree}:src/Makefile A:src/Makefile
暂存区中的文件和HEAD中的文件相同
git rev-parse :gitg.png HEAD:gitg.png
提交日志中查找字符串的方式显示提交:git rev-parse :/"Commit A"
reflog相关的语法
git rev-parse HEAD@{0} master@{0}
版本范围表示法:git rev-list
git rev-list --oneline A 该版本开始的所有历史提交
两个或多个版本:相当于每个版本单独使用时指代的列表的并集
git rev-list --oneline D F
版本号前面加上符号(^)含义是取反,即排除这个版本及其历史版本
git rev-list --oneline ^G D D对G取余
等介于git rev-list --oneline G..D 两个点
三个点两个版本共同能够访问到的除外
git rev-list --oneline B..C ( BUC)对(B^C)取余
自身除外
git rev-list --oneline B^@
提交本身不包其成史提交
git rev-list --oneline B^!
浏览日志:git log
显示日志范围:git log --oneline F^! D
分支图显示
git log --graph --oneline
显示最近的几条日志
git log -3 --pretty=oneline
显示每次提交的具体改动:git log -p -1
显示每次提交的变更概要:git log --stat --oneline I..C
定制输出
git log --pretty=raw -1
--pretty=raw显示cmmit的原始数据
同时显示作者和提交者 --pretty=fuller
git log --pretty=fuller -l
最精简的日志输出
git log --pretty=oneline -1
查看和分析某一个提交:git show git cat-file
显示里程碑D及其提交 :git show D --stat
等价于:git cat-file -p D^0
-p:美观的输出
差异比较:git diff
里程碑B和里程碑A: git diff B A
工作区和里程碑A git diff A
暂存区和里程碑A git diff --cached A
工作区和暂存区 git diff
暂存区和HEAD git diff --cached
工作区和HEAD git diff HEAD
非git目录/文件的差异比较
git diff
逐词比较:
git diff --word-diff
文件追溯:git blame
会逐行显示文件,在每一行的行首显示此行最早是在什么版本引用入的,同谁引入的
git blame README
只想查看某向行使用-L n,m :git blame -L 6,+5 README
二分查找:git bisect