7

コマンドラインからGitを使用している場合、変更済みで更新されていないリストで削除するすべてのファイルを一挙に削除する方法はありますか?ワイルドカードを使用して手動で削除するのではなく。

4

3 に答える 3

8

以下は、削除されたかどうかに関係なく、すべてのファイルをインデックスにステージングする必要があります。

git add -A
于 2012-02-07T20:02:16.497 に答える
4

変更済みで更新されていないファイルは、すでにインデックスに登録されています。を使用して変更を破棄できます。git checkout .
新しいが、使用できるインデックスに追加されていないファイルを削除するにはgit clean
しかし、変更されてインデックスにあるファイルを削除するには...簡単な解決策はありません。おそらく、との組み合わせを使用する必要がgit rmありgit ls-filesます。

編集:
git ls-files -mあなたが探しているファイルをリストする必要があります。それを組み合わせると、git rm完了です。

git-ls files -m | xargs git rm // NOT TESTED

編集:
私はおそらくあなたの質問の一部を誤解しました。私のソリューションでは、[変更されたが更新されていない]の下にリストされているすべてのファイルが削除されます。削除済みとしてリストされているファイルを削除する場合git diff、CharlesBaileyが回答に示しているように使用する必要があります。

于 2010-04-19T15:41:53.147 に答える
3

ステータスの「変更されたが更新されていない」セクションで削除済みとして表示されたファイルは、作業ツリーから削除されますが、インデックスからは削除されません。インデックスで削除をステージングする(つまり、インデックスからファイルを削除する)には、次の操作を実行できます。

git diff -z --name-only --diff-filter=D | git update-index --remove -z --stdin

--diff-filter=D削除されたファイルであるインデックスとの違いのみを--name-only表示し、名前を出力し、-zNULを使用してファイル名を区切るため、改行が埋め込まれたファイル名について心配する必要はありません。update-index次に、指定されたファイルをインデックスから削除します。

xargsそのサポートのバージョンがある場合-0は、少し簡単に行うことができます。

git diff -z --name-only --diff-filter=D | xargs -0 git rm
于 2010-04-19T15:57:19.037 に答える