すべてをコミットした後、プロジェクトに.gitignoreを追加しました。今、私は次のようなコマンドを実行したいと思います:
git rm --cached *everything_listed_in_gitignore*
これはどのように達成できますか?前もって感謝します。
my にリストされているファイルを削除するには、常に次の行を使用しています.gitignore。
grep -vP "^(#|\$)" .gitignore|sed "s/^\///"|xargs rm -f
これにより、 (コメント) または空の行で始まる正規表現に一致する行.gitignore(grep のオプション) に一致しない行が検索されます。-v^(#|\$)#
次にsed、行頭のスラッシュを削除し/ます。
rm -f結果はusingに渡されxargsますが、これは次のように置き換えることができますgit rm --cached
ノート:
ファイルには、プロジェクト全体ですべてのファイルを無視する.gitignoreなどのエントリを含めることができます。上記のコマンドは、ルートからファイルを削除するだけです。完全なパスのみが正しく処理されます。*.tmp.tmp*.tmp