Git diff不适用于Windows绝对路径
问题描述:
我试图检查一个文件是否已用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?
答
使用cygpath
在将它提供给git之前转换Windows路径。
这不行,我需要在脚本中运行这个。 – dman
任何你不能在脚本中运行'cygpath'的理由? – jingx
其他正在使用该脚本的用户将不会有cygwin – dman