您可能不瞭解git log的有用技巧 - Git Better

banq發表於2020-06-07

如果您使用Git有一段時間,則應該遇到git log。眾所周知,git log是一個簡單的命令,可以幫助我們檢視更改或專案歷史記錄。

即使如此簡單,它仍然是一個非常強大的工具,它帶有許多選項,可幫助我們檢視專案更改及其結構。我們將在本文中看到一些最常用的選項。

git log --oneline

此命令可幫助您以更簡潔的方式檢視提交。它會將每次提交壓縮到一行,並且只有很少的資訊,例如較短的提交雜湊,提交訊息。

按時間段過濾提交

按給定的時間間隔過濾提交。例如,-after將僅過濾在給定時間段之後的提交,而-before將僅過濾在給定時間段之前的提交。

git log --after="2020-15-05"

上面的命令將僅顯示2020年5月15日之後的提交

git log --after="2020-15-05" --before="2020-25-05"

上面的命令將僅顯示5月15日至5月25日的提交

您還可以使用以下日期格式

git log --after="yesterday" // shows only commits from yeserday

git log --after="today" // shows only today commits

git log --before="10 day ago" // omits last 10 days commits

git log --after="1 week ago" //show only commits from last week

git log --after="2 week ago"

git log --after="2 month ago" // shows only last 2 months commits

git日誌與差異更改

git log -p

此命令將顯示具有差異更改的日誌。這樣您就可以知道每次提交中所做的更改。

按作者過濾提交

git log --author="Srebalaji"

上面的命令將過濾出特定作者所做的提交。請注意,Git按正規表示式模式過濾掉。因此,不必擔心確切的名稱匹配或區分大小寫。

Git日誌可以採用多個選項,因此您可以根據需要組合選項。例如,

git log --after="1 week ago" --author="srebalji" -p

上面的命令將過濾各自作者過去一週的提交,並顯示差異更改。

通過日誌訊息過濾提交

有時,您需要通過日誌訊息來過濾提交。Git接受一個正規表示式模式來搜尋日誌訊息並顯示所有匹配的提交。

git log --grep="ISSUE-43560"

上面的命令將按各自的模式過濾提交。並且請記住,預設情況下它區分大小寫。

要使搜尋不區分大小寫,可以傳遞-i引數

git log -i --grep="issue-43560"

以下命令使用正規表示式模式搜尋,並將搜尋兩個問題ID。

git log -i --grep="issue-43560\|issue-89786"

按檔案過濾提交

有時,您需要進行所有已影響某些特定檔案的提交更改。這將在許多地方出現。

git log main.rb

該命令將過濾對相應檔案進行更改的提交。

您還可以將多個檔案傳遞給它。

git log main.rb search.rb login.rb

您可以看到我已經傳遞了三個檔案進行過濾。

請記住,您還可以傳遞多個選項。

git log -i --grep="fix " main.rb search.rb

該命令將過濾出對指定檔案所做的提交更改,還將通過給定的搜尋模式匹配日誌訊息。

按檔案內容過濾提交

您可能需要在提交歷史中新增的原始碼中搜尋特定的字串。這可以通過

git log -S"function login()"

上面的命令將搜尋字串“ function login()”。預設情況下,區分大小寫。

您可以通過新增-i使其不區分大小寫。要檢視內容,您可以檢視差異更改。

git log -i -S"function login()" -p

僅顯示合併提交

此命令有助於我們瞭解對當前分支所做的合併。

git log --merges

上面的命令將僅顯示當前分支中的合併提交。而已。

顯示分支之間的差異

我們在先前的一個問題中已經看到了此命令。

git log master..develop

該命令將幫助您顯示來自development的所有提交,但這些提交不在master分支中。這樣,您可以知道有多少新提交新增到了master分支中不存在的develop分支中。比較之前,請確保您具有本地更新的更改。

自定義格式日誌訊息

Git還提供了用於自定義日誌訊息格式的選項。您可以檢視自定義漂亮選項以獲得更多選項。

例如,

git log --pretty=format:"%Cred%an - %ar%n %Cblue %h -%Cgreen %s %n"

 

相關文章