今天自己在家没事,总结整理下我日常工作中常用到的git log相关的命令。
1.0 最基础
查看提交历史
git log
很多时候git log很难满足我们的需要,甚至说没什么用,就需要具体深入的查看了。
2.0 日常常用
1、查看某一文件的修改历史
git log --<file>
“–” 可不加
2、查看某一节点的修改记录
git show [commit_id]
3、只查看前n条记录
git log -n
问题是他会把修改文件的具体的内容都显示出来,太多很烦,用处也基本不大。
3.0 升级版
1、只查看某节点的修改文件
git show [commit_id] --stat
这样就可以只查看某个节点修改的文件,而不管修改的具体内容
2、查看该节点某一文件修改具体内容
git show [commit_id] <file>
4.0 进阶版
其实到了3.0升级版已经可以满足大部分需求了吧,但是这些才是开始,git log命令很多,可以通过帮助查看。下面列举些:
1、查看某一作者提交的节点
git log --author=<Author>
2、每条log只显示一行
git log --oneline
3、图形显示log
git log --graph
4、优化log
git log --pretty=oneline --graph
5、修改log格式
git log --pretty=format:" "
选项 说明
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 -date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明
示例下说明:
(显示前2条信息,简单的哈希值,作者,提交时间,提交说明)
$ git log --pretty=format:"%h -%an %ar : %s" -2
4abff36 -Tulaf 2 hours ago : first submit
31413bf -xxxxxx 3 hours ago : Initial commit
这个为了方便可以做个别名:
git config alias.logs "log --pretty=format:'%h -%an,%ar:%s'"
6、结合bash脚本命令来操作
git show [commit_id] | grep diff | cut -d " " f 3
就不解释了,都是最简单的bash命令
这些命令已经参数要结合着使用,才能发挥出更强大的作用以上就是我平时常用的git log相关的命令,基本能满足我的需求了。还有一些关于时间的就不罗列了,平时用的也不多,感兴趣的 git log --help
自行学习吧。
总结:
选项 | 说明 |
---|---|
-p | 按补丁格式显示每个更新之间的差异 |
–stat | 显示每次更新的文件修改统计信息 |
–shortstat | 只显示 --stat 中最后的行数修改添加移除统计 |
–name-only | 仅在提交信息后显示已修改的文件清单 |
–name-status | 显示新增、修改、删除的文件清单 |
–abbrev-commit | 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符 |
–relative-date | 使用较短的相对时间显示(比如,“2 weeks ago”) |
–graph | 显示 ASCII 图形表示的分支合并历史 |
–pretty | 使用其他格式显示历史提交信息。可用的选项包括 onelineshort,full,fuller 和 format(后跟指定格式) |
-(n) | 仅显示最近的 n 条提交 |
–since, --after | 仅显示指定时间之后的提交 |
–until, --before | 仅显示指定时间之前的提交 |
–author | 仅显示指定作者相关的提交 |
–committer | 仅显示指定提交者相关的提交 |
–grep | 仅显示含指定关键字的提交 |
-S | 仅显示添加或移除了某个关键字的提交 |
示例:
有些还是很常用的,这个列举几个(因为格式)
git log --grep="arm64"
//commit信息中带有arm64的条目
git log --before=2020-10-15
//2020.10.15前提交的代码,日期格式注意
好吧很简单,没啥要说明的,没事多试试,有事才能得心应手,哈哈哈。。。