2017-01-06 6 views
7

При работе в командной строке Windows все мои пути указывают разделители-директора с обратным слэшем \, при использовании команд GIT все пути вместо этого используют forwardslash /. Как изменить вывод GIT, чтобы отразить вывод моей командной строки?Как изменить разделитель каталога git?

Примеры непоследовательных указателей каталогов;

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

Добавление инструментов в пределах мерзавец \ USR \ Bin на моем пути, и использовать их из командной строки работу вокруг, но я до сих пор сталкиваются с проблемами при попытке скопировать пути из командной строки в диалоговое окно открытого файла приложения Windows. –

+0

Зачем вам нужно его менять? git bash - unix, а cmd - это окна. – CodeWizard

+0

команды windows, такие как erase или rmdir, не работают с файловыми путями '/' с разделителями –

ответ

3

Как изменить выход GIT, чтобы отразить мою командную строку вывода?

Во-первых, все команды Git выполняются в git bash суб-оболочки, которая объясняет, почему вы видите «/». A '\' - это escape-символ для сеанса bash, поэтому он не используется в любом выходе команды bash.

Для замены любого / вам необходимо использовать git-упаковку (набор git.pat в вашем PATH), чтобы указать \.

git.bat:

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

Убедитесь git.bat установлен перед темgit.exe в вашем %PATH%: тип where git проверить порядок, в котором обнаружены мерзавец (с).
И замените C:\prgs\git\latest по пути вашего Git.

Указывая полный путь для git.exe и для sed.exe, вы обязательно исправьте исполняемый файл.

+0

Просто для nitpick, я не верю, что 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" 

, который пусть у НУ это сделать:

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