2017-08-10 79 views
0

我試圖檢查一個文件是否已用git diff --quiet修改(編程在節點中),然後使用退出狀態碼。Git diff不適用於Windows絕對路徑

在Windows 7中工作時,在我的cygwin shell中沒有問題。退出狀態代碼是正確的:

$ git diff --quiet /cygdrive/c/git/foo/bar/Home.js 
$ !ech 
echo $? 
1 

但是當我使用Windows的完整路徑在Cygwin的殼,我錯誤地獲得退出0狀態:

$ git diff --quiet "C:\\git\\foo\\bar\\Home.js" 
$ echo $? 
0 

這是爲什麼,以及如何可以我使用絕對的Windows路徑並獲取正確的退出狀態代碼?

UPDATE我發現,使用Windows絕對路徑時,git diff完全不起作用/不顯示任何內容。如何在Windows絕對路徑中使用git diff?

回答

0

使用cygpath在將它提供給git之前轉換Windows路徑。

+0

這不行,我需要在腳本中運行這個。 – dman

+0

任何你不能在腳本中運行'cygpath'的理由? – jingx

+0

其他正在使用該腳本的用戶將不會有cygwin – dman