2013-02-07 89 views
1

我在git clone(git告訴我有一個獨立的頭,如果這很重要)之後檢出了一個存儲庫的特定修訂版git checkout。現在,此修訂版不能完全編譯。它看起來像是一些重構只是部分完成的,我需要看看後面做了哪些改變。在git中查找文件的更改

我已經試過

git diff origin/master -- path/to/file 

但對待我的文件作爲全新的。我得到一個差異:

diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c 
new file mode 100644 
index 0000000..19e1244 
--- /dev/null 
+++ b/drivers/usb/core/driver.c 
(complete contents of the file follows) 

它根本沒有幫助我。我也嘗試過git log的變體,但沒有成功。

理想情況下,我希望在日後的日期(與我在工作副本中所做的比較)看到文件所做更改的所有差異。一旦我找到有趣的,我想看看在具體修訂中所做的所有更改。

注意:只檢出一個更高版本或分支不適用於我的情況。該項目針對不同的設備使用不同的分支,並且我已經爲我正在處理的設備提供了最新的提交。有更新的提交重構完成,但他們沒有我需要的所有設備特定的東西。

回答

1

你缺少一個<提交>:

$ git diff -h 
usage: git diff [<options>] [<commit> [<commit>]] [--] [<path>...] 

所以如果您提供當前提交(HEAD),將來會顯示影響指定文件的分離頭與遠程頭之間的所有差異。即:

git checkout HEAD~10 
git diff HEAD origin/master -- path/to/file 

讓我感動回10提交從我目前的職位上的主人,創造一個分離的頭,然後顯示影響該電流之間的文件提交與原提交所有更改。當然,git diff HEAD~10 HEAD -- path/to/file無論如何都會從HEAD == master的通常情況下完成。

+0

似乎比我的答案更精確。 +1 – VonC