2011-09-30 67 views
54

我搜索的興趣在提交日誌的話題:獲取有關SHA-1提交對象的信息?

$ git log --pretty=oneline | grep -i ... 

$SHA1 < ... commit message ... > 

我現在有一個SHA1,我想知道這些文件影響該SHA1,也許以後diff他們與父母的信息。我怎樣才能做到這一點?

回答

85

git show <SHA1>將顯示提交日期,作者,父母和DIFF從父更改的文件提交的。

4
git show --no-patch --oneline <SHA1> 
git show --no-patch <SHA1> 

這是一個答案 View a specific Git commit 它沒有回覆框,因爲它已被標記爲這個問題的一個副本。 一些尋找上述問題的答覆的人都可能會遵循鏈接,尋找這裏的答案。

兩者都是關於獲得有關其SHA1代碼提交信息的問題。

有些時候你已經確定了它的SHA1代碼提交的時候,你會想知道的一切:所有修改過的文件,有什麼實際變化等

另一個問題更加具體。有人在文件中存在可疑的軟件行,並使用「git blame」將其跟蹤到特定的SHA1代碼。然後,他們只是想知道哪些軟件的人爲變化引入了該行。沒有興趣瞭解所有其他更改的文件,對獲取文件的完全差異感興趣,甚至無法獲得該文件的差異。這只是瞭解哪些更改引入了一行代碼。

而不是像

c27feeaa9b2c6270ff559b21eaf9f1e0317676a7 

我們要像

Humanitarian Aid Feature 

Left handed Thread Fix 

信息要做到這一點的信息,使用

git show --no-patch --oneline <SHA1> 

其中GIT中顯示--no補丁(即與--no補丁選項)的關鍵在於回答eykanal的問題View a specific Git commit

使用

git show --no-patch <SHA1> 
如果你想作者和日期信息太

0

您還可以獲取有關commit對象的具體信息使用cat-file命令(使用SHA1)。

E.g. git cat-file -p <sha1>

樣本輸出:

$ git cat-file -p xxxx 
tree <sha1> 
parent <sha1> 
parent <sha1> 
author <author> 
committer <committer>  
...