すべてをコミットした後、プロジェクトに.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