git log命令参数部分记录

Git  2024年7月17日 pm5:59发布4个月前更新 城堡大人
171 0 0

前言

本问详细的记录(摘抄)一下git log的其他用法。

git log很常见,但也局限于简单的,而且git log后面可以带很多参数并定制化的显示。

正文

git log命令格式

git log [<options>] [<revision-range>] [[--] <path>…]

对应git log不带参数的,下面是显示效果:

$ git log
commit 14743b86dc84930376c90cb327171a45b81ecdf6 (HEAD -> master)
Author: test <test@i.com>
Date:   Wed Jul 17 14:59:43 2024 +0800

    更新abc.txt

这里重点介绍带参数的。

主要是自己老是忘记,因此摘抄一下

git log -p

显示每个更新的差异。(可以对比一下不带-p的显示效果)

$ git log -p
commit 14743b86dc84930376c90cb327171a45b81ecdf6 (HEAD -> master)
Author: test <test@i.com>
Date:   Wed Jul 17 14:59:43 2024 +0800

    更新abc.txt

diff --git a/abc.txt b/abc.txt
index e69de29..7984619 100644
--- a/abc.txt
+++ b/abc.txt
@@ -0,0 +1 @@
+急急急急急急急急急急急急急急急急急急急急急

这里会显示增删的内容(有点类似git diff比较更新文件的差异)。

git log --stat

显示每次提交修改文件的统计信息,每个提交都列出了修改过的文件,以及其中添加和移除的行数,并在最后列出所有增减行数小计

$ git log --stat
commit 14743b86dc84930376c90cb327171a45b81ecdf6 (HEAD -> master)
Author: test <test@i.com>
Date:   Wed Jul 17 14:59:43 2024 +0800

    更新abc.txt

 abc.txt | 1 +
 1 file changed, 1 insertion(+)

这个比git log显示的信息更多点。

git log --shortstat

这个算是 --stat的缩小版本,只显示--stat中最后的行数添加、修改、删除的统计。

$ git log --shortstat
commit 14743b86dc84930376c90cb327171a45b81ecdf6 (HEAD -> master)
Author: test <test@i.com>
Date:   Wed Jul 17 14:59:43 2024 +0800

    更新abc.txt

 1 file changed, 1 insertion(+)

git log --name-only

这仅显示commit信息和修改的文件

$ git log --name-only
commit 14743b86dc84930376c90cb327171a45b81ecdf6 (HEAD -> master)
Author: test <test@i.com>
Date:   Wed Jul 17 14:59:43 2024 +0800

    更新abc.txt

abc.txt

git log --abbrev-commit

仅显示[哈希值]SHA-1校验和的前几个字符

$ git log --abbrev-commit
commit 14743b8 (HEAD -> master)
Author: test <test@i.com>
Date:   Wed Jul 17 14:59:43 2024 +0800

    更新abc.txt

更git log显示差不多。

git log --graph

在日志旁以 ASCII 图形显示分支与合并历史

$ git log --graph
* commit 14743b86dc84930376c90cb327171a45b81ecdf6 (HEAD -> master)
| Author: test <test@i.com>
| Date:   Wed Jul 17 14:59:43 2024 +0800
|
|     更新abc.txt
|
* commit b8815fe32ac5870e6acef2db2f1b6102b3759761
| Author: test <test@i.com>
| Date:   Wed Jul 17 14:59:08 2024 +0800
|
|     新增abc.txt
|

我这是临时写的,展示不够明显。

git log --oneline

一行显示,只显示哈希值和提交说明

$ git log --oneline
14743b8 (HEAD -> master) 更新abc.txt
b8815fe 新增abc.txt
c79116b 新增[欢迎]
6840960 test 1、添加test.txt
d787f46 Test 1、新增bg.png
de89f18 test 1、新增文件

git log --pretty

可以定制化使用其他格式显示历史提交信息。

--pretty=oneline
$ git log --pretty=oneline
14743b86dc84930376c90cb327171a45b81ecdf6 (HEAD -> master) 更新abc.txt
b8815fe32ac5870e6acef2db2f1b6102b3759761 新增abc.txt
c79116bcc0906a635a2896d9d68a9622c0cdbd6b 新增[欢迎]
68409607b1ee9c7dd7814adf58d6cd63473a320a test 1、添加test.txt
d787f4609a3a81b658b5f0e00b66c4f05bddfec2 Test 1、新增bg.png
de89f18a265ddd7a306db3e9e4caf95ba8bafb0a test 1、新增文件
--pretty=format:"规则"

比如

$ git log --pretty=format:"%Cred%h"
14743b8
b8815fe
c79116b
6840960
d787f46
de89f18

简单介绍一下%Cred和%h意思

  1. %Cred 颜色换成红色

  2. %h 简写的哈希值

再来一个例子,然后继续介绍相关内容。

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %C(cyan)%s %C(magenta)(%cr) %C(bold blue)<%an>%Creset'
$ git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %C(cyan)%s %C(magenta)(%cr) %C(bold blue)<%an>%Creset'
* 14743b8 - (HEAD -> master) 更新abc.txt (3 hours ago) <test>
* b8815fe - 新增abc.txt (3 hours ago) <test>
* c79116b - 新增[欢迎] (3 hours ago) <test>
* 6840960 - test 1、添加test.txt (3 hours ago) <test>
* d787f46 - Test 1、新增bg.png (3 hours ago) <test>
* de89f18 - test 1、新增文件 (3 hours ago) <test>

我这临时git中无法展示graph和颜色,你们自行脑补吧。

控制显示信息的格式
%H     提交的完整哈希值(commit-id)。
%h     提交的简写哈希值。
%T     树的完整哈希值(tree)。
%t     树的简写哈希值。
%P     父提交(parent)的完整哈希值。
%p     父提交的简写哈希值。
%an    作者名字(author)。
%ae    作者的电子邮件地址。
%ad    作者修订日期(可以用 --date=选项 来定制格式)。
%ar    作者修订日期,按多久以前的方式显示。
%cn    提交者的名字(committer)。
%ce    提交者的电子邮件地址。
%cd    提交日期(可以用 --date=选项 来定制格式)。
%cr    提交日期,按多久以前的方式显示。
%s     提交说明。
控制显示信息的颜色
%Cred    将颜色切换为红色
%Cgreen  将颜色切换为绿色
%Cblue   将颜色切换为蓝色
%Creset  空格

当然还有其他颜色可以用,但写法不一样,比如。

# 以黄色显示简写的哈希值
git log --pretty=format:"%C(yellow)%h%
# 绿色
git log --pretty=format:"%Cgreen%h%"
git log --pretty=format:"%C(green)%h%"
# cyan
git log --pretty=format:"%C(cyan)%h%"

小结

git log后面还有其他的参数,但使用过于少,这里就不摘抄了。

个人常用的命令

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %C(cyan)%s %C(magenta)(%cr) %C(bold blue)<%an>%Creset'

参考文章

  1. Git - git-log Documentation

  2. 超级详细Git操作 之git log 命令的参数详解

 历史上的今天

  1. 2023: Android 中Bn和Bp介绍(0条评论)
  2. 2021: Dialog的简单使用(0条评论)
  3. 2021: 穆旦:冥想(0条评论)
  4. 2020: [摘]SeekBar的thumbOffset属性(0条评论)
  5. 2019: 余光中:乡愁(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

Android按键音简单源码分析

前言记录一下Android按键音相关分析。记录于此,方便自己查阅和回顾。Android P源码上分析正文当一个View设置点击监听事件setOnClickListener()时,如果用户点击默认就会有按键音,当然如果你不需要,可以通过如下取消。xml配置android:s...

Android app换肤简单记录

前言记录一下换肤的思路,方便自己查阅正文Android换肤已经烂大街了,很多大厂应用都做了,比如QQ、网易云、哔哩哔哩等,这些都是需要VVIP才可以体验的。这里推荐GitHub开源的而且很受欢迎的Android-skin-support,很强大。下面我就整理一下我对换肤的简单理解。换...

Android GridView horizontalSpacing属性值无效

前言Android GridView horizontalSpacing属性值无效解决方式,方便自己查阅。好记性不如烂笔头正文之前一直没注意这个问题,今天调试时发现GridView设置为match_parent后没有horizontalSpacing的属性效果没有实现。android:ho...

木心 :从前慢

记得早先少年时大家诚诚恳恳说一句 是一句 清早上火车站长街黑暗无行人卖豆浆的小店冒着热气 从前的日色变得慢车,马,邮件都慢一生只够爱一个人 从前的锁也好看钥匙精美有样子你锁了 人家就懂了

Android Intent匹配及mimeType匹配

前言activity的启动分为显式调用和隐式调用。显式调用需要明确指定组件的信息。隐式调用是通过匹配目标组件的IntentFilter这里是记录一下如何使用匹配目标组建隐式启动Activity正文通过组建匹配,可以再不知道应用包名的情况启动对应的Activity(或者说应用),一个...

Android中关于焦点的记录

前言焦点管理是Android中比较重要的一个点,这也是Android对播放器的一个约束条件,但手机上的播放器应用都不太准守这个准则,所以就就可以存在混音问题。这里记录一下我自己的理解,当然,由于文笔过于拙,内容不会分享,谢谢。正文代码片段AudioFocusManager.javapu...