git rev-list
按时间倒序列出 commit(即 reverse-list)。
假设 commit 提交历史从近到远有 5 条:
1
2
3
4
5
6
| $ git log
E - (HEAD -> master) addE (10/19/2019 13:31:19)
D - addD (10/18/2019 13:31:19)
C - addC (10/17/2019 13:31:19)
B - addB (10/16/2019 13:31:19)
A - addA (10/15/2019 13:31:19)
|
例子:
git rev-list D
:打印 D 及更早的 commit 节点
git rev-list D...B
:打印 D 到 B 之间的节点,且不包括 B
git rev-list D ^B
:打印 D 及更早的节点,并剔除 B 及更早的节点(同上)
git rev-list B..D
:打印 D 到 B 之间的节点,且不包括 B(同上)
参数:
--count:统计结果集中 commit 节点数量
git rev-list --count HEAD
统计所有 commit 数量
git remote
打印远端仓库的信息。
参数:
-v:打印远端仓库详细信息
1
2
3
| $ git remote -v
origin https://github.com/huanggze/huanggze.github.io.git (fetch)
origin https://github.com/huanggze/huanggze.github.io.git (push)
|
git rev-parse
解析 commit,获取 commit id、分支名等信息(rev 即 revision)。
1
2
3
4
5
| $ git rev-parse main
978670a662eb3cb1fe9f89b1e4d166150cea51b7
$ git rev-parse HEAD~2
dfd6dd4c24043a59243fc1e08056afa1cc81929c
|
参数:
--abbrev-ref :获取分支名。如下示例获取当前分支名:
--short:短 commit id
1
2
3
4
5
| $ git rev-parse --abbrev-ref HEAD
main
$ git rev-parse --short HEAD
978670a
|
git log
打印 commit 日志。
参数:
-<num>,-n <num>:打印指定数量的 commit 日志:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| $ git log -2
Author: xxx <xxx@gmail.com>
Date: Tue May 10 23:40:54 2022 +0800
update
Signed-off-by: xxx <xxx@gmail.com>
commit 502bab4fb850f965dc9d4f5d6b53fd57cf587ac2
Merge: dfd6dd4 1166a1b
Author: xxx <xxx@gmail.com>
Date: Mon May 9 22:57:46 2022 +0800
Merge branch 'main' of https://github.com/xxx/xxx.github.io
|
--pretty:输出格式。oneline 用一行现实;format:<format-string> 有特殊的输出语法,如 %B 打印原始 body(包括主题以及主题内容),%s 只打印主题:
1
2
3
4
5
6
7
| $ git log --pretty=format:%B -1
update
Signed-off-by: xxx <xxx@gmail.com>
$ git log --pretty=format:%s -1
update
|
git config
git config user.name:打印 git 用户名
git tag
- 查询所有标签:
git tag
; - 给当前 commit 打标签:
git tag <tag_name>
; - 删除本地标签:
git tag -d <tag_name>
参数:
-m:给标签添加描述信息