2017-01-06 14 views
7

Bir windows komut isteminde çalışırken, tüm yollarım, GIT komutları kullanıldığında, ters eğik çizgi \ olan yönlendirici ayırıcılarını gösterir, bunun yerine tüm yollar için forwardlash / kullanılır. GIT'in çıktısını komut satırımın çıktısını yansıtmak için nasıl değiştirebilirim?Git dizin sınırlayıcı nasıl değiştirilir?

Örnek tutarsız dizin göstergeleri;

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

benim yoluna git \ usr \ bin içindeki araçlar ekleme ve çevresinde komut satırından bir çalışma bunları kullanılarak, ama komut satırından yolları kopyalamak çalıştığınızda hala sorunlarla: ou bunu diğer windows uygulamasının açık dosya iletişim kutusuna. –

+0

Neden onu değiştirmeniz gerekiyor? cmd penceredir iken git bash unix. – CodeWizard

+0

silme veya rmdir gibi windows komutları '/' ayrılmış dosya yollarıyla çalışmaz –

cevap

3

nasıl komut satırı çıktısını ayna GYTE çıkışını değiştirebilirim?

Öncelikle, tüm git komutları '/' bakın açıklayan bir git bash alt kabuk, içinde yürütülür. A '\', bir bash oturumu için bir çıkış karakteridir, bu nedenle herhangi bir bash komut çıktısında kullanılmaz. Herhangi bir / öğesinin yerine \ değiştirmek için bir Git sarıcı (PATH içinde bir küme.pat seti) kullanmanız gerekir

git.bat

: git (lar) keşfedilen sırayı kontrol etmek tip where git:

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

git.bat sizin %PATH% yılındagit.exe önce ayarlandığından emin olun.
Ve Git'in yüklü olduğu yolla C:\prgs\git\latest değiştirin.

git.exe ve sed.exe için tam yolu belirterek, doğru yürütülebilir dosyayı kullandığınızdan emin olabilirsiniz.

+0

Sadece nitpick için, git herşeyi bash'ta çalıştırdığına inanmıyorum - sadece git.exe mingw'ye karşı inşa edilmiş. –

+0

Coloration kaybolur ve yalnızca bir regex olduğu için, yol dışındaki elemanların çıktısında bulunan herhangi bir '/' ile eşleşir :( –

+0

@PeterNied Evet, bu bir çözümdür: Git özünde bir Linux aracıdır. – VonC

1

neyi aradığınız gibi görünüyor yana değil özellikle sen boru sed yoluyla çıkış can "nasıl Git \ ile dosya yollarını oluşturmak yapmak do" değil, "Ben Git dosya yollarındaki \ kullanmak yapmak nasıl" (Git Bash olarak paketlenmiş olan) şöyle:

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

ve sizin için bunu yapmak için Git takma adı yapılandırabilirsiniz sed her zaman yazarak önlemek için:

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

y sağlayacak olan

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