/xxx/documentation
とそのサブディレクトリ内にいくつかの.screenファイルがあり、それらはGitによって既に追跡されています。
これらの画面ファイルの多くを変更した後、git add documentation/\\*.screen
のドキュメントの最初の例で示されているように、git-add
を実行してこれらのファイルをステージングしますが、コマンドは失敗します。
致命的:pathspec 'documentation/\ *。screen'はどのファイルとも一致しませんでした
私のコマンドは悪いのですか、それともgitにはバグがありますか?
私は受け入れられた答えを試しましたが、それは私のために働きませんでした..だから誰かが問題を引き起こす可能性のあるさまざまな側面を分析するのに時間を費やすことなく仕事をやり遂げたい場合に備えて私のものです:
find documentation -name "*.screen" | xargs git add -u
// git-addの-uオプションは、以前に追跡および変更されたファイルのみをインデックスに追加します
シェルに*.screen
(つまり、.screen
で終わるすべてのファイルではなく、正確にこの文字列-存在しない-を探すように指示しました。\\
soを省略しますシェルがファイル名の拡張を行うことができます。
これは、ディレクトリにすべてのファイルを追加するgitの同様の問題に使用したものです:
find . | sed "s/\(.*\)/\"\1\"/g" | xargs git add
元の質問の場合、コマンドは次のようになります。
find -name "*.screen" | sed "s/\(.*\)/\"\1\"/g" | xargs git add
完全に指定されたファイル名にスペースが含まれる場合を扱っていることに注意してください。それが私の答えです。追加するさまざまなファイルを選択するには、最初の|
の前の部分を編集します。
git add * .JavaはすべてのJavaファイルを再帰的に追加するために機能します
試してみる
git add ./documentation/*.screen