LoginSignup
4
3

More than 5 years have passed since last update.

gitのリポジトリがデカすぎてリモートにpushできない時の解決法

Last updated at Posted at 2016-11-15

web制作をやってると、お客さんが作ったサイトをまるっと渡されて、追加ページだけ作成することがある。
この時git管理しようとサイト全てのファイルをaddしてしまうと、すごく重くなってリモートリポジトリにpushできなくなることがある。

解決法

不要なファイルのgit管理をやめる

git rmすればgit管理から外すことができるが、一度コミットしているファイルは取り消せない。
下記のコマンドで、今までのコミット全てから任意のファイル(フォルダ)を取り除くことができる。

$ git filter-branch -f --tree-filter 'rm -rf path/to/delete/folder'

履歴も消す

上記の操作をしてもバックアップが履歴が残ってるので、まだ重すぎてpushできない。
以下のコマンドでバックアップも削除する

$ git update-ref -d refs/original/refs/heads/master
$ git gc --aggressive --prune=now

refs/original/refs/heads/masterは、logで確認できるref名を指定)

これで、リポジトリが軽くなるので、リモートにpushできる。

一連の操作は歴史の改変な上に、バックアップの削除まで行っているので、下手すれば元に戻すことができない。
別のフォルダにコピーしてgitに頼らないバックアップをしてから作業するなど、慎重にやろう。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3