こんにちは!ウェブサバイバー 運営のYeah-Manです!

さて今回はgit。読者の中に、gitで重い容量のファイルをコミットしてしまったという経験をお持ちのかたはいらっしゃいますか?
たとえば大量のPDFファイルやzipファイルなんかを.gitignoreで除外漏れしてコミットまでしてしまったみたいなアレですね。
その時gitのメンテナンスをして軽量化をしないとpushができなくなります。

対応として調べると『filter-repoの利用を推奨』という記事が散見されますが、ググるとfilter-branchを使った対処法がたくさんできます。

とりあえず時間なかったのもあってfilter-branchを使って対処したのですが、それを試した時に詰まったところを解消したお話です。

といっても簡単な話ですが。。。w

結論:パスの記述が間違っていた

さて、いきなり結論です。結論としては『対象ファイルのパスが間違っていた』ということなんですが、
今回のケースは以下のような状態でした。

  1. 誤ってbackWpUPのバックアップファイルをadd、コミットしてしまった
  2. サーバーからpushしようとして発覚

問題のコードを見てみましょう。


git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch /wp-content/ai1wm-backups/※※※※※※-20210105-085150-tzbgyt.wpress' HEAD

さて、どこが間違っているかわかりますか?

答えは以下のようなものでした。

ファイルパスの先頭に『/』がいらない

はいこれ。これなんです。。。pwdコマンドとか『./』とか色々試した挙句、パスの表記が違っているだけでした。
回答としては以下コマンドで動作した次第です。


git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch wp-content/ai1wm-backups/※※※※※※-20210105-085150-tzbgyt.wpress' HEAD

いやぁ。これはマジで目からウロコでした。初日見つかった時は2〜3時間こねくりまわしたのですが、解決はあっけなかったです。。。
ってかそんなのわからん。w

git filter-branchの実行に成功した様子

※実際の画面は上記です。成功したことがわかります。

なんにせよgit filter-branchコマンドは使わなくていいよう、普段から注意しよう

今日の教訓はこれにつきますね。
みなさんもやってしまった時はしょうがないですが、コミットは慎重に行うことをお勧めします。

以上、現場からでした〜!