2016-06-20 16 views
-2

xargsはdos2unixで動作しますが、git addでは動作しません。 なぜですか?`xargs`で` git add`を動作させる方法

$ git status -s -uno | sed -n 's/^...//p' | xargs dos2unix -u 
dos2unix: converting file Server.C to UNIX format ... 
dos2unix: converting file Proxy.C to UNIX format ... 
dos2unix: converting file Proxy.H to UNIX format ... 

$ git status -s -uno 
M Server.C 
M Proxy.C 
M Proxy.H 

$ git status -s -uno | sed -n 's/^...//p' 
Server.C 
Proxy.C 
Proxy.H 

$ git status -s -uno | sed -n 's/^...//p' | xargs git add 
xargs: git: No such file or directory 

git addxargs作品ように私は何をすべき?

答えて

0

おそらく、git addに正しいファイルパスがありません。 git addをエコーに置き換え、渡される内容と使用するパスを確認します。追加するには-uを指定し、すべてのファイルを渡さないでください。変更されたすべての追跡ファイルがインデックスに追加されます。

1

git status -s -uno | sed -n 's/^...//p' | xargs git addは正しいですし、私はそれをテストしたときに動作します。

関連するエラーメッセージは、実際にはgit: No such file or directoryです。私。 gitコマンドが見つからないので、... | xargs echo $PATHのようなものでデバッグして、$PATHxargsプロセスにあるかどうかを確認してください。また

、あなたがそれを書いたとして、それはあなたの例 で

git add `git status -s -uno | sed -n 's/^...//p'` 

すなわちgit add Server.C Proxy.C Proxy.Hと同じgit呼び出しを与えるいくつかの理由で、

もし(... | xargs echo代わり... | xargs git addのを試してください) (いくつのファイル名でgitを引数として与えることができますか?)、別にしたいgit addを呼び出す を使用する必要があります

git add

xargs使用引数として各ラインを作るために
... | xargs -L1 git add 

関連する問題