githubからgitlabへの以降などで大量のコミットをpushしようとするとアップロードサイズの制限に引っ掛かる場合があります。以下は200MB以上を一度にアップロードできない場合の出力例を示します
$ git push -u origin
Enumerating objects: 42153, done.
Counting objects: 100% (42153/42153), done.
Delta compression using up to 12 threads
Compressing objects: 100% (14835/14835), done.
remote: fatal: pack exceeds maximum allowed size (200.00 MiB)
...
この場合数百コミットごとにpushすることでこのエラーを回避できます。
masterブランチをおよそ256コミットずつコミットする方法を示します
git log --pretty=format:"%H" --reverse | grep -e "^00" | xargs -IX git push -u origin X:refs/heads/master
git push origin --all
- git log --pretty=format:"%H" --reverse
これはコミットハッシュを最古から順に一行ずつ表示します。
- grep -e "^00"
これは標準入力を一行ずつ精査し約256個に1個のコミットを通します。確率的に256コミットに1つはコミットのハッシュ値が00から始まります。
- xargs -IX git push -u origin X:refs/heads/master
通されたコミットハッシュまでをmasterブランチにコミットしています
- git push origin --all
残留コミットをすべてpushします。
最後に
もっといい方法があれば記事をアップデートします。
コメントいただければ嬉しいです。
〆
貴方の御用のためにお使いください