6

すべてをコミットした後、プロジェクトに.gitignoreを追加しました。今、私は次のようなコマンドを実行したいと思います:

git rm --cached *everything_listed_in_gitignore*

これはどのように達成できますか?前もって感謝します。

4

3 に答える 3

4

my にリストされているファイルを削除するには、常に次の行を使用しています.gitignore

grep -vP "^(#|\$)" .gitignore|sed "s/^\///"|xargs rm -f
  1. これにより、 (コメント) または空の行で始まる正規表現に一致する行.gitignore(grep のオプション) に一致しない行が検索されます。-v^(#|\$)#

  2. 次にsed、行頭のスラッシュを削除し/ます。

  3. rm -f結果はusingに渡されxargsますが、これは次のように置き換えることができますgit rm --cached

ノート:

ファイルには、プロジェクト全体ですべてのファイルを無視する.gitignoreなどのエントリを含めることができます。上記のコマンドは、ルートからファイルを削除するだけです。完全なパスのみが正しく処理されます。*.tmp.tmp*.tmp

于 2016-02-23T15:59:40.773 に答える