Gitでファイルの履歴を削除した

ファイルの履歴を削除する必要があったので色々調べて削除しました。

・現在のブランチのファイルをログも含めて削除する。(エラーが出れば-fオプションをつけて実行する。)

git filter-branch --tree-filter 'rm -f ディレクトリ/ディレクトリ2/ファイル名' HEAD 

・全てのブランチからファイルをログも含めて削除する。

git filter-branch --tree-filter 'rm -f ディレクトリ/ディレクトリ2/ファイル名' HEAD --all

・reflogを削除

git reflog expire --expire=now --all

・git gcを実行

git gc --aggressive --prune=now

・git push –forceを実行

git push --force origin master

・git push –forceで該当ブランチにpushする場合

git push --force -u origin HEAD

・※ remote:error: denying non-fast-forward refs/heads/master … とエラーが出た場合は
下記のようにreceive.denynonfastforwardsをfalseにする。

git config receive.denynonfastforwards false

コメント