2017-01-06 68 views
7

当一个窗口内工作命令提示符下,我所有的路径表明主任分离用反斜杠\,使用Git命令时,所有的路径都而不使用forwardslash /。如何更改GIT的输出以镜像我的命令行输出?如何更改git目录分隔符?

实施例不一致目录指标;

D:\git\demo>git status --s 
A test/subdir/foo.txt 
+0

添加的git的\ usr \ BIN中的工具,是我路上和周围使用这些命令行是工作,但我仍然会碰到问题,当我试图通过命令行复制路径到其他Windows应用程序的打开文件对话框中。 –

+0

你为什么需要改变它? git bash是unix,而cmd是windows。 – CodeWizard

+0

窗口的命令,如擦除或命令rmdir以“/”分隔的文件路径 –

回答

3

如何更改GIT的输出,以反映我的命令行输出?

首先,所有的git命令在git bash子壳,这也解释了为什么你看到“/”执行。 A“\”是一个bash会话,这就是为什么它不以任何bash命令输出使用转义字符。

您需要使用git wrapper(在PATH中设置git.pat),以便用\替换/

git.bat

C:\prgs\git\latest\bin\git.exe %*|C:\prgs\git\latest\usr\bin\sed.exe -e 's:/:\\\\:' 

确保git.bat在您%PATH%git.exe前设置:类型where git,以检查那些混帐(S)被发现的顺序。
而更换C:\prgs\git\latest通过安装在您的Git的路径。

通过指定git.exesed.exe的完整路径,您一定会使用正确的可执行文件。

+0

只是挑剔,我不相信git在bash中运行的所有内容 - 只是git.exe是针对mingw构建的。 –

+0

着色失败了,因为它只是一个正则表达式,它匹配非路径元素输出中的任何'/':( –

+0

@PeterNied是的,这是一个解决方法:Git仍然是它的核心Linux工具 – VonC

1

既然你要找什么似乎是没有具体“我怎么做的Git使用文件路径\”,而是“我怎么做的Git生成\文件路径”,可以通过管道通过sed输出(被包装在Git中的Bash),像这样:

$ git status --s | sed 's/\//\\/g' 
M dir\file.py 
?? dir\input001.txt 
?? dir\output001.txt 

,并避免打字每一次sed您可以配置一个Git别名来为你做它:

[alias] 
    ws = "!ws() { : git status ; git status --short [email protected] | sed 's/\\//\\\\/g' ; } && ws" 

这将令y OU做到这一点:

$ git ws 
M dir\file.py 
?? dir\input001.txt 
?? dir\output001.txt