2009-12-29 88 views
2

我剛剛開始使用Git,並且正在尋找一種方法來獲取文件已進行修訂的次數。獲取GIT文件版本號

現在,我使用下面的命令:

git diff master~(arbitrary number) main.js 

我怎麼知道我有多高這個數字去?我也想獲得每個修訂的日期以及..謝謝!

回答

1

試試這個

git log --pretty="format:%ai | %s" main.js 

的修訂與日期一起。您可以通過wc -l來獲取修訂版本的數量。爲了打印不同的信息比特,嘗試

git help log 

,並檢查了format:參數到--pretty選項。

+0

非常感謝,非常感謝! – Matt 2009-12-30 02:30:08

0

在git中,歷史通常是非線性的,這就是爲什麼SHA-1用來表示提交而不是修訂版本號的原因。

我建議你使用

git log -p filename 

git blame filename 

查看該文件的歷史記錄,如果這是你想要的。

如果你堅持,這將做到這一點:

git log --pretty=oneline `git log --reverse --pretty=%H filename | head -1`.. | wc -l 
1

git-log這裏是你的朋友。

git log --pretty=oneline main.js | wc -l 

git log還有一些diff和patch相關的選項。不要嘗試

git log -p main.js 

編輯:Iamamac在下面的評論中指出,上面給你做文件的編輯的數量。您真正想要的是自文件首次簽入主文件以來提交的次數。怎麼樣

git log master --oneline `git log master --reverse --pretty=%H main.js | head -1`..master | wc -l 

這應該適用於任何分支。感謝您提出這個問題。我已經添加了一個git-master-diff到我的bin文件夾,其中包含

#!/usr/bin/env bash 
git diff master~$(git log master --oneline `git log master --reverse --pretty=%H [email protected] | head -1`..master | wc -l) [email protected] 

應該派上用場。

+1

您得到的數字是'main.js'改變了多少次,而不是第一次和最近一次提交之間的「距離」,這正是馬特想要得到的結果 – iamamac 2009-12-29 08:34:22

+0

感謝您指出這一點。 – anshul 2009-12-29 09:43:27