ひじりんのひつまむしブログ

現役システムエンジニアのゲームやら映画やら技術やら・・

Gitで、ファイルを履歴から消す方法

 

ファイルを誤ってcommit

大きいファイルやバイナリをcommitしてしまった場合

削除してcommitしても、履歴にはのこる

100Mを超えたようなファイルは、GitHubだとエラーになってしまう

どうしても、履歴から「なかった物」としたいケースもある

 

履歴から削除する方法

履歴から削除する場合は、下記の手段がある

#git filter-branch --tree-filter "rm -f [削除したいファイル]" HEAD

これで削除できる

 

削除時のエラー

削除するときに下記のエラーがでる場合は、.git フォルダのある

トップのディレクトリでないため、トップディレクトリに移動してから

パス付で呼び出すとよい

You need to run this command from the toplevel of the working tree.

 

フォルダを削除する場合

フォルダを削除するには

#git filter-branch --tree-filter "rm -f -r [削除したいディレクトリ]" HEAD

となる

 

2回目以降にエラーとなる場合

2回目を実施しようとすると、下記のエラーが発生する場合がある

この場合は、filter-branch に -f オプションをつけると解決する

Cannot create a new backup.
A previous backup already exists in refs/original/
Force overwriting the backup with -f

 

 

 

PVアクセスランキング にほんブログ村