大家好,我是 17。
git log dev 查看 dev 分支的 log
git log -p 每次提交所引入的差异
git log --stat 每次提交的简略统计信息
git log --name-status 比 --stat 更简洁,更常用。
git log -2 最近两次提交
git log --since=2.weeks 最近两周内的提交
git log --since=2020-8-26 --until="2018.03.18" 日期两种写法都可 还可以用 / 分隔
git log --author=hongwei 只看 hongwei 的提交
git log --grep=登录 搜索提交信息中有登录的的交
git log --grep='auto commit' 如果搜索信息有空格,需要加上引号
git log -S login 在添加或删除的内容里搜索 包含login 的提交
git log --no-merges 不显示合并提交
上面列出的一些用法算是开胃小菜,下面介绍重量级的格式化功能。
git format
如果用默认输出的格式,看起来不大方便,根据你的需求,可以设置输出格式。
选项 | 说明 |
---|---|
%H | 提交的完整哈希值 |
%h | 提交的简写哈希值 |
%T | 树的完整哈希值 |
%t | 树的简写哈希值 |
%P | 父提交的完整哈希值 |
%p | 父提交的简写哈希值 |
%an | 作者名字 |
%ae | 作者的电子邮件地址 |
%ad | 作者修订日期(可以用 --date=选项 来定制格式) |
%ar | 作者修订日期,按多久以前的方式显示 |
%cn | 提交者的名字 |
%ce | 提交者的电子邮件地址 |
%cd | 提交日期 |
%cr | 提交日期(距今多长时间) |
%s | 提交说明 |
我们可以从上面的选项中选择需要的选项。我的format 是这样的
git log --pretty=format:"%h %an %ad %s" --date=short --graph
–date 可选值可以到这里去找 https://git-scm.com/docs/git-log/en。
–date=short 按 2022-08-26 的短格式显示日期。
–graph 图形化显示,主要是用来看分支的关系的。
只查看分支log
默认情况下,在分支执行 git log
会显示打分支前和打分支后的所有 log。只查看分支log ,需要这样写:
git log dev ^master --reverse
--reverse 表示按正序显示,默认是倒序显示的。
dev ^master
显示在 dev,不在master 的提交,也可以这样写
git log master..dev
可以这样理解,从 master 到 dev 需要哪些更改呢?两种写法都可以。
分支名改成 commit 也是可以的,用分支名代表的就是最后一个 commit
git log commit..commit
除了两个点的,还有三个点的,表示排除 master,topic 共有的,剩下的所有提交。
git log master...topic
相当于
git log master topic --not $(git merge-base --all master topic)
还是看这张图 git log master...topic
的结果是 ABCFG
。
前面讲过 diff , 三个点也是与 merge-base 有关。