変更されたファイルのみを追加します。 私が試した:特定のリストで修正されたファイルをgit addで追加します。
git status | grep "modified" | cut -d " " -f4 | git add
または
git status | grep "modified" | cut -d " " -f4 | xargs git add
が、それは動作しません。私は何を使うべきですか?
変更されたファイルのみを追加します。 私が試した:特定のリストで修正されたファイルをgit addで追加します。
git status | grep "modified" | cut -d " " -f4 | git add
または
git status | grep "modified" | cut -d " " -f4 | xargs git add
が、それは動作しません。私は何を使うべきですか?
xargs
を使用しないため、最初の機能は動作しません。 cut
が機能しないため、出力を見てください。
修正されたファイルのリストを1行に1つずつ表示するコマンドがあります(git ls-files --modified
)。あなたは、ファイル名にスペースがない場合は、単純に使用します。
git ls-files --modified | xargs git add
あなたは、ファイル名にスペースがある場合は、必ずxargs
のバリアントは、オプションとして-0
をサポートすること-z
と-0
オプションを(使用しています。それは)普遍的ではなく、GNU xargs
の標準である:
git ls-files --modified -z | xargs -0 git add
フラグなしでgit status
を使用して、あなたは、ファイル名にスペースが含まれていない自信がある必要があり、あなたがして使用することができますが:
git status | awk '/[[:space:]]modified:[[:space:]]/{print $2}' | xargs git add
また、git status -s
は、より簡単で解析しやすい出力形式を提供します。あなたが使用する可能性があります:
git status -s | sed -n '/^ M/s///p' | xargs git add
これは、単純なケースのために働く(あなたはそれがインデックスにまだない、ローカルファイルを変更した、それが唯一の関連する変更です)。短いフォーマットでgit status --help
のspielを読んで、(多くの)他のケースをどのように処理する必要があるかを理解する必要があります。
また、git commit -a
はすべての変更されたファイルをコミットすることにも注意してください。
私が試してみてください。
git ls-files -o | grep "tests/" | xargs -0 git add
、私はxargs: argument line too long
を取得します。
xargs
への-0
のオプションには、ヌルバイトで終わる「行」が必要です。 git
コマンドは、-z
オプションを省略したため、これらのコマンドを生成しません。真ん中にあるgrep
(改行で終わる行のみで動作する)を心配しているので、おそらく省略したでしょうが、コマンドラインは改行やヌルを使って作業している間、自己完結型でなければなりませんファイル名区切り文字。幸運にもgrep
には--null
というオプションがあります(GNUとBSDで動作するgrep
; GNUでも-z
が許されていますが、それはBSDとは異なることを意味します)。そのため、あなたはどちらかしようとする必要があります。
git ls-files -o -z | grep --null "tests/" | xargs -0 git add
か、あなたはファイル名にスペースを心配する必要がない場合:
git ls-files -o | grep "tests/" | xargs git add
あなたは単にgit add -u
を使用することができます。 It will stage only modified files。
git addディレクトリにもディレクトリ内の削除されたファイルのステージを更新しますか? @ 1615903 – Alex
私は試してみます:git ls-files -o | grep "tests /" | xargs -0 git add。しかし、私はxargsを得る:引数行が長すぎる @Jonathan Leffler – Alex
私はuntrackedファイルを追加したい。私もzフラグを使用しようとしますが、動作しません@Jonathan Leffler – Alex
私はお詫びしますが、それでも動作しません。私は致命的なpathspecを取得します。 @Jonathan Leffer – Alex