2017-01-06 12 views
7

Windowsのコマンドプロンプト内で作業しているときに、すべてのパスがディレクタの区切り文字としてバックスラッシュ\を示しています.GITコマンドを使用すると、すべてのパスが代わりに前方スラッシュ/です。 GITの出力をコマンドライン出力を反映するように変更するにはどうすればよいですか?gitディレクトリの区切り文字を変更するには?

一貫性のないディレクトリインジケータの例。

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

git \ usr \ bin内のツールを自分のパスに追加してコマンドラインから使用すると回避できますが、コマンドラインからパスをコピーしようとすると問題が発生します他のウィンドウのアプリケーションの開いているファイルのダイアログに。 –

+0

なぜそれを変更する必要がありますか? git bashはunixであり、cmdはwindowsです。 – CodeWizard

+0

eraseやrmdirなどのウィンドウコマンドは、区切られたファイルパス '/'では機能しません。 –

答えて

3

どのように私は、コマンドライン出力をミラーリングするGITの出力を変更できますか?

まず、すべてのgitコマンドを使用すると、「/」を参照して理由を説明git bashサブシェルで実行されます。 '\'はbashセッションのエスケープ文字です。そのため、bashコマンドの出力では使用されません。

/\に置き換えるには、gitラッパー(PATHにgit.patを設定)を使用する必要があります。

git.bat

:gitの(s)が発見される順序を確認するためにタイプ where git

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

git.batがあなたの%PATH%git.exeに設定されていることを確認します。
GitがインストールされているパスでC:\prgs\git\latestを置き換えてください。

git.exeのフルパスとsed.exeのフルパスを指定すると、正しい実行可能ファイルを使用することができます。

+0

ちょうどニックピックに、私はgitがbashですべてを実行するとは思わない - それはちょうどgit.exeがmingwに対して構築されていることです。 –

+0

配色は失われており、それは単なる正規表現なので、非パス要素の出力の '/'にマッチします:( –

+0

@PeterNiedはい、回避策です:GitはLinuxツールのコアに残ります – VonC

1

あなたが探しているものを「どのように私はGitはファイルパスで\を使用しますか」ではなく、むしろ「どのように私はGitは\でファイルパスを生成させるか」、あなたはsedてパイプの出力をすることができない特別のようですので、 (Gitのバッシュにパッケージ化されている)ので、のような:

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

sedあなたがあなたのためにそれを行うにはGitのエイリアスを設定することができます毎回入力しないようにする:

Yをできるようになる
[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 
関連する問題