Git 歷史記錄

查看歷史提交
git log

顯示最近2次提交的內容差異
git log -2

顯示某個作者的提交
git log --author 'leo han'

列出某個時間段的提交

git log --since 2.weeks  等同於  git log --after 2.weeks

git log --since 2008.01.15

git log --since 2 years 1day 3minutes ago

限制 git log 輸出的選項

選項

說明

-(n)

僅顯示最近的 n 條提交

--since, --after

僅顯示指定時間之後的提交。

--until, --before

僅顯示指定時間之前的提交。

--author

僅顯示指定作者相關的提交。

--committer

僅顯示指定提交者相關的提交。

--grep

僅顯示含指定關鍵字的提交

-S

僅顯示添加或移除了某個關鍵字的提交

想知道hello這行代碼是何時加入到文件中的

git log -S 'hello'

只需要提供 SHA-1 起始的大於4個字符就可以獲得對應的那次提交,下面的命令是等價的:

git show 1c002dd4b536e7479fe34593e72e6c6c1819e53b

git show 1c002dd4b536e7479f

git show 1c002d

查看HEAD所指的當前版本:

git reset --hard

跳轉到指定版本:

#前一個
git reset --hard HEAD^

#離現在最近的第二個
git reset --hard HEAE^^

#離現在最近的第100個
git reset --hard HEAD~100

#指定版本號
git reset --hard <commit_id>

查看引用日誌(最近幾個月你的 HEAD 和分支引用所指向的歷史):

git reflog

在每次提交的下面列出所有被修改過的文件、有多少文件被修改了以及被修改過的文件的哪些行爲被移除或是添加了:

git log --stat

選項

說明

-p

按補丁格式顯示每個更新之間的差異。

--stat

顯示每次更新的文件修改統計信息。

--shortstat

只顯示 --stat 中最後的行數修改添加移除統計。

--name-only

僅在提交信息後顯示已修改的文件清單。

--name-status

顯示新增、修改、刪除的文件清單。

--abbrev-commit

僅顯示 SHA-1 的前幾個字符,而非所有的 40 個字符。

--relative-date

使用較短的相對時間顯示(比如,“2 weeks ago”)。

--graph

顯示 ASCII 圖形表示的分支合併歷史。

--pretty

使用其他格式顯示歷史提交信息。可用的選項包括 oneline,short,full,fuller 和 format(後跟指定格式)。

指定使用不同於默認格式的方式展示提交歷史:

git log --pretty=oneline/short/fulll/fuller

 定製要顯示的記錄格式:

git log --pretty=formt:'%h- %an, %ar : %s'

Table 1. git log --pretty=format 常用的選項

選項

說明

%H

提交對象(commit)的完整哈希字串

%h

提交對象的簡短哈希字串

%T

樹對象(tree)的完整哈希字串

%t

樹對象的簡短哈希字串

%P

父對象(parent)的完整哈希字串

%p

父對象的簡短哈希字串

%an

作者(author)的名字

%ae

作者的電子郵件地址

%ad

作者修訂日期(可以用 --date= 選項定製格式)

%ar

作者修訂日期,按多久以前的方式顯示

%cn

提交者(committer)的名字

%ce

提交者的電子郵件地址

%cd

提交日期

%cr

提交日期,按多久以前的方式顯示

%s

提交說明

注:作者指實際作出修改的人,提交者指最後將此工作成果提交到倉庫的人。

如果想查找匹配某個正則表達式的代碼,可以傳入這樣子的參數 -G"<regex>"

查看merge信息

git log --merges

使用--no-merges來過濾掉這個merge信息:

git log --no-merges
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章