2012-01-10 63 views
1

perforce有一個非常有用的命令,可以打印出文件的所有修訂版本,其中註釋指示文件中每行包含哪些版本。例如,假設我創建了一個文件foo,將其簽入,然後檢查文件的兩個後續更改。這裏是foo的三個版本:相當於'p4 annotate -a'的git是什麼?

aaa   aaa   aaa 
bbb   bbb   bbb 
ccc   ccc   ccc 
       ddd   ddd 
       eee   fff 
       fff 

這裏是P4註釋-a打印:

1-3: aaa 
1-3: bbb 
1-3: ccc 
2-3: ddd 
2-2: eee 
2-3: fff 

我看到foo的整個歷史,表明該版本包含的每一行註釋。

AFAICT,git blame只給出包含每行的最後一個版本。使用pickaxe的git日誌只打印與模式匹配的行,並在文件本身中提供提交消息而不是行。

有沒有辦法在git中執行類似上面的perforce命令?

由於提前,

格雷格

回答

1

沒有什麼直接等同於Git的 - 因爲Git不會有一個線性的歷史,像1-3就沒有意義。

+0

「混帳登錄-S‘SEARCH_STRING’文件」使用git的鎬頭功能,並做一些事向無環圖相關的「文件」的混帳我明白。我希望有這樣的事情,但輸出的文件行而不是git commit消息。 – user691307 2012-01-10 23:15:35

+0

git log -S找到引入或刪除指定字符串的提交。這只是一個歷史過濾器。你也許可以將指定的修訂版本傳遞給'git blame',然後'grep'來處理blame輸出中也包含字符串的行...... – Amber 2012-01-10 23:18:54

0

您可以使用git blame,因爲我想 - 它會顯示每行的源提交。

這可能不是你想要的,但它是朝着正確方向邁出的一步。您可以將該輸出與git log的輸出結合起來,然後構建您想要的結果。

0

怎麼樣使用git annotate,它可以輸出詳細的註釋爲每個文件

相關問題