2011-12-05 46 views
57

git diff實際上在所有源代碼上運行diff,我如何在特定目錄上執行此操作以便我可以查看對其下的文件的修改。如何在特定目錄上對git進行比較

+0

http://stackoverflow.com/a/12123669/1815624'git的差異master..yourbranch路徑/到/ folder' – CrandellWS

回答

60

(在這種情況下,MyFolder文件)提供的路徑,只是運行:

git diff myfolder/

+11

我想用'git的差異 - myfolder'最大限度地減少混淆。 git diff(和許多git命令)的一般符號是'git diff [commit-ish] - [path]',其中commit-ish默認爲HEAD(你現在的位置)和'[path]'默認爲git根目錄,但可以是與你當前目錄相關的任何東西。沒有'--',git會猜測你的意思,'[commit-ish]'或'[path]'。在某些情況下,這會導致git說符號是'模棱兩可'。如果我沒有記錯的話。 – L0LN1NJ4

+2

當我嘗試回答中的方法和評論中的方法時,這不會打印任何內容。 – ray

+0

@ray這意味着您在工作樹和最新提交之間沒有區別 –

5

你應該看着像這樣的東西的文檔的習慣。這非常有用,並且會很快提高你的技能。下面是相關的位,當你做git help diff

git diff [options] [--no-index] [--] <path> <path> 

兩個<path> s爲您需要更改到相關目錄中的內容。

22

如果你比較不同的分支,你需要使用--來從文件系統路徑中分離git修訂版。例如,有兩個地方分支機構,masterbryan-working

$ git diff master -- AFolderOfCode/ bryan-working -- AFolderOfCode/ 

或從本地分支到遠程:

$ git diff master -- AFolderOfCode/ origin/master -- AFolderOfCode/ 
+10

在列出兩個分支之後只需要一個子句,如下所示:git diff branch1 branch2 - path/to/dir – emery