Git查询日志

373 阅读1分钟

查看日志命令

git查看日志

1、$ git log 查询这个时间点之前的信息日志

1、$ git reflog 查询这个时间点之前和之后的信息日志

1、$ git log --graph

选项是 -p 或 --patch ,它会显示每次提交所引入的差异(按 补丁 的格式输出)。 你也可以限制显示的日志条目数量,例如使用 -2 选项来只显示最近的两次提交: 2、$ git log -p -2

3、想看到每次提交的简略统计信息,可以使用 $ git log --stat

4、另一个非常有用的选项是 --pretty。 这个选项可以使用不同于默认格式的方式展示提交历史。 这个选项有一些内建的子选项供你使用。 比如 oneline 会将每个提交放在一行显示,在浏览大量的提交时非常有用。 另外还有 short,full 和 fuller 选项,它们展示信息的格式基本一致,但是详尽程度不一: $ git log --pretty=oneline

5、最有意思的是 format ,可以定制记录的显示格式。 这样的输出对后期提取分析格外有用——因为你知道输出的格式不会随着 Git 的更新而发生改变: $ git log --pretty=format:"%h - %an, %ar : %s"

选项 说明 %H 提交的完整哈希值

%h 提交的简写哈希值

%T 树的完整哈希值

%t 树的简写哈希值

%P 父提交的完整哈希值

%p 父提交的简写哈希值

%an 作者名字

%ae 作者的电子邮件地址

%ad 作者修订日期(可以用 --date=选项 来定制格式)

%ar 作者修订日期,按多久以前的方式显示

%cn 提交者的名字

%ce 提交者的电子邮件地址

%cd 提交日期

%cr 提交日期(距今多长时间)

%s 提交说明

6、限制输出长度 下面的命令会列出最近两周的所有提交: $ git log --since=2.weeks

7、 如果要在 Git 源码库中查看 Junio Hamano 在 2008 年 10 月其间, 除了合并提交之外的哪一个提交修改了测试文件,可以使用下面的命令:

$ git log --pretty="%h - %s" --author='Junio C Hamano' --since="2008-10-01"
--before="2008-11-01" --no-merges -- t/

8、git命令统计

【 1、统计某人代码提交量

git log --author="***" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -

2、统计所有人代码提交量(指定统计提交文件类型)

git log --since=2022-01-01 --until=2022-12-12 --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | grep ".html∥.java∥.xml∥.properties∥.css∥.js∥.txt.html‖.java‖.xml‖.properties‖.css‖.js‖.txt$" | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done

3、统计某时间范围内的代码提交量

git log --author=*** --since=2022-01-01 --until=2022-12-12 --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | grep "\(.html\|.java\|.xml\|.properties\)$" | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done

4、查看git提交前5名

git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5


5、贡献值统计

git log --pretty='%aN' | sort -u | wc -l

6、提交数统计

git log --oneline | wc -l

7、统计或修改的行数

git log --stat|perl -ne 'END { print $c } $c += $1 if /(\d+) insertions/' 

8、无名真实统计
git log --since="2022-01-01" --before="2022-12-13" --author="$(git config --get user.name)" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }'

9、查看某人的提交记录 git log --author=bob