2013-11-09 28 views

回答

31

在文件上運行git blame。它會向您顯示提交ID,日期和時間,以及每個行的實施人員。然後只複製提交標識符,您可以在git log <commit>git show <commit>中使用它。

例如,我有一個文件,名爲test.txt的,用線在不同的提交補充道:

$ cat test.txt 
First line. 
Second line. 

運行git blame

$ git blame test.txt 
^410c3dd (Leigh 2013-11-09 12:00:00 1) First line. 
2365eb7d (Leigh 2013-11-09 12:00:10 2) Second line. 

第一位是提交ID,名稱,日期,時間,時區,最後是行號和行內容。

+5

問題是,這隻顯示當那些文件上次更改,而不是當他們被添加時。 – ensonic

+0

@ensonic如果是這種情況,這個答案可能會很有趣(例如,行被移動或空白改變):http://stackoverflow.com/a/5816177/812680 – maartencls

+0

有用的附加功能是grep結果'git blame test .txt | grep'First line'' –

25

有一些東西比對整個文件發出指責要快。如果線路${lineno},文件是${filename}您可以:

git blame -L ${lineno},${lineno} ${filename} 

例子:

git blame -L 2,2 test.txt 
6
git log -S searchTerm 

讓你在其中引入了搜索詞的提交。

相關問題