1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

gitでファイルサイズが大きくてプッシュ出来なかったときのメモ

Last updated at Posted at 2018-10-04

きっかけ

とある日にこんな質問をされました

gitでプッシュ出来ないんです・・・

コンソールに出たメッセージを見ると、どうやらファイルサイズが大きすぎるのが原因というのがわかった。
ちなみにローカルリポジトリにコミットが20個くらい溜まってました:sweat_smile:

そのときに行った対策を記録として残そうと思った。

対策

最初に、自分の頭にはこの解決策が思い浮かびました。

分割してプッシュする

コミットの、ハッシュ値を利用してプッシュする方法です。下記のようなコマンドになります。

git push origin (ハッシュ値):(ブランチ名)

これなら一つのコミットだけをプッシュ出来ます。これを使って細かくプッシュしていけば解決出来ると思っていました。
実際に、いくつかのコミット分はプッシュ出来たみたいです。

問題発生

1コミットのファイルサイズが大きくて、プッシュ出来ません・・・

一体どんなファイルをそこでコミットしたのか問だたしたいですが、それは置いといて。
この場合、コミットををやり直して、もっと細かい単位でステージングしてコミットする必要があります。

git reset で前の状態に一旦戻す

下記のようなコマンドで、一旦前の状態に戻します。

git reset (戻りたい位置のコミットハッシュ値)

オプションはつけていないので、デフォルトの--mixedが適用されます。
この場合、コミットとインデックスはその時の状態に戻りますが、ワーキングツリーはそのままです。
つまり、git addでステージングする前になる訳です。

ちなみに、--hardだとワーキングツリーも戻るので私が怒られます :innocent:
--softだとインデックスがもどらないので、ステージングをやり直すことが出来ません。
なので今回はデフォルトの--mixedを使用しました。

 結果

なんとか細かい単位でステージング、コミットし直すことでプッシュ出来たようです。よかったです。:relaxed:

本当はもっとスマートがやり方があるのかも知れません。良い方法があれば、ご教授よろしくお願いいたします。:bow:

1
0
3

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?