2017-08-10 74 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