🌝

Git 学习

Posted at — May 16, 2022

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)

例子1

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> 有特殊的输出语法2,如 %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

参数:

-m:给标签添加描述信息