これはあなたが探しているものです:無視してもファイルは削除されません。そのページを読むことをお勧めしますが、使用する特定のコマンドは次のとおりです。
git filter-branch --index-filter \
'git rm -r --cached --ignore-unmatch <file/dir>' HEAD
また、削除されたすべてのファイルを git が作成するキャッシュから削除するには、次を使用します。
rm -rf .git/refs/original/ && \
git reflog expire --all && \
git gc --aggressive --prune
最後のコマンドに関する詳細情報と、必要なすべてを 1 回のアクションで実行するスクリプトについては、こちらを参照してください: git: forever remove files or folders from history。
別のリンクには多くの説明があります:機密データの削除。
[編集]また、この StackOverflow の質問を参照してください:機密ファイルとそのコミットを Git 履歴から削除します。
(コマンドnatacado
は、上記の質問の回答からコピーされたものです。)作業コピーからファイルを既に削除している場合は、次のように動作するはずです。不要なファイルを追加したコミットのハッシュを見つけます。次に、次のようにします。
git filter-branch --index-filter \
'git update-index --remove filename' <introduction-revision-sha1>..HEAD
git push --force --verbose --dry-run
git push --force