历史穿梭(git权威指南笔记)

来源:互联网 发布:华科何琨 知乎 编辑:程序博客网 时间:2024/05/24 03:08

版本库中有多少次提交: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 <path1> <path2>


逐词比较:

git diff --word-diff


文件追溯:git blame

会逐行显示文件,在每一行的行首显示此行最早是在什么版本引用入的,同谁引入的

git blame README

只想查看某向行使用-L n,m :git blame -L 6,+5 README


二分查找:git bisect 



0 0
原创粉丝点击