[TOC] #### 1. 前言 --- git log 命令主要用于查看提交记录 日常开发中,我们会经常使用 git log 查看提交记录,配合 git status 确认当前代码是不是最新的 git log 有很多的参数选项,我们可以根据自己的需求使用不同的参数,使其输出我们想要的效果 #### 2. git log --- 基本用法 ``` git log ``` **only one line**,该参数用于简化 `git log` 的默认输出。只显示 commit id 和备注信息 ``` git log --pretty=oneline ``` 更为简洁的提交历史列表,只显示 commit id 的前 7 位和备注信息 ``` git log --oneline ``` 查看某个人的提交记录 (等号和空格都行) ``` git log --author liang git log --author=liang ``` 查看最近 n 次的提交记录 ``` # 查看最近1次提交记录 git log -1 # 查看最近2次提交记录 git log -2 ``` 查看文件的变动信息 ``` # 查看所有提交记录的变动信息 git log -p # 查看某个 commit id 及其以前的记录 git log -p <commit id> ``` 查看变动的文件名,用于查看哪些文件发生了改变 ``` git log --name-only ``` 查看文件变动状态,会显示 `增加、修改` 等对应的字母标识 ``` git log --name-status ``` 显示哪些文件发生了改变,以及对应的新增行数、减少行数和变动文件数 ``` git log --stat ``` 根据备注信息模糊查询提交记录 ``` git log --grep <keyword> ``` 提交记录左侧显示虚线作为分割区域 ``` git log --graph ``` 显示缩写的 commit id,也就是只显示前 7 位 ``` git log --abbrev-commit ``` 自定义输出格式 ``` git log --pretty=format:'%Cred%h%Creset -%C(yellow)%d %s' ``` #### 3. git reflog ---- 用于查看所有分支的所有操作记录,包括已经被删除的 commit 记录和 reset 的操作 多了 `HEAD@{数字}` 数字的含义: 指针会到该版本需要走多少步 ``` git reflog ``` #### 4. 快捷键 --- 上一页: `b` 下一页: `空格键` 上一行/下一行: `↑/↓` 退出查看: q #### 5. 长命令 --- 统计行数 ```bash git log --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "增加的行数 lines: %s, 删除的行数 lines: %s, 有效的总行数 lines: %s\n", add, subs, loc }' - ``` 我使用的输出格式,我会定义个别名来使用这个命令 ``` git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit ```