[TOC] #### 1. 前言 --- git log 命令主要用于查看提交記錄 日常開發(fā)中,我們會(huì)經(jīng)常使用 git log 查看提交記錄,配合 git status 確認(rèn)當(dāng)前代碼是不是最新的 git log 有很多的參數(shù)選項(xiàng),我們可以根據(jù)自己的需求使用不同的參數(shù),使其輸出我們想要的效果 #### 2. git log --- 基本用法 ``` git log ``` **only one line**,該參數(shù)用于簡(jiǎn)化 `git log` 的默認(rèn)輸出。只顯示 commit id 和備注信息 ``` git log --pretty=oneline ``` 更為簡(jiǎn)潔的提交歷史列表,只顯示 commit id 的前 7 位和備注信息 ``` git log --oneline ``` 查看某個(gè)人的提交記錄 (等號(hào)和空格都行) ``` git log --author liang git log --author=liang ``` 查看最近 n 次的提交記錄 ``` # 查看最近1次提交記錄 git log -1 # 查看最近2次提交記錄 git log -2 ``` 查看文件的變動(dòng)信息 ``` # 查看所有提交記錄的變動(dòng)信息 git log -p # 查看某個(gè) commit id 及其以前的記錄 git log -p <commit id> ``` 查看變動(dòng)的文件名,用于查看哪些文件發(fā)生了改變 ``` git log --name-only ``` 查看文件變動(dòng)狀態(tài),會(huì)顯示 `增加、修改` 等對(duì)應(yīng)的字母標(biāo)識(shí) ``` git log --name-status ``` 顯示哪些文件發(fā)生了改變,以及對(duì)應(yīng)的新增行數(shù)、減少行數(shù)和變動(dòng)文件數(shù) ``` git log --stat ``` 根據(jù)備注信息模糊查詢提交記錄 ``` git log --grep <keyword> ``` 提交記錄左側(cè)顯示虛線作為分割區(qū)域 ``` git log --graph ``` 顯示縮寫的 commit id,也就是只顯示前 7 位 ``` git log --abbrev-commit ``` 自定義輸出格式 ``` git log --pretty=format:'%Cred%h%Creset -%C(yellow)%d %s' ``` #### 3. git reflog ---- 用于查看所有分支的所有操作記錄,包括已經(jīng)被刪除的 commit 記錄和 reset 的操作 多了 `HEAD@{數(shù)字}` 數(shù)字的含義: 指針會(huì)到該版本需要走多少步 ``` git reflog ``` #### 4. 快捷鍵 --- 上一頁(yè): `b` 下一頁(yè): `空格鍵` 上一行/下一行: `↑/↓` 退出查看: q #### 5. 長(zhǎng)命令 --- 統(tǒng)計(jì)行數(shù) ```bash git log --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "增加的行數(shù) lines: %s, 刪除的行數(shù) lines: %s, 有效的總行數(shù) lines: %s\n", add, subs, loc }' - ``` 我使用的輸出格式,我會(huì)定義個(gè)別名來(lái)使用這個(gè)命令 ``` git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit ```