※先に伝えますが私はコミットとプッシュとプルしか行わないようなただの大学生です。
経緯
今までBitbucketを使っていたのですがGitHubの緑のあれが気に入ってしまって、気づいたら課金をしていました。そこでBitbucketからGitHubへ移行することにしました。
通常の移し方
GitHubの機能によりURLを乗っけるだけで簡単に移せます。
参考サイトURL : https://qiita.com/tackeyy/items/74e87a0300fc091ef259
通常はこれでいけるのですが、今回プッシュ及びリポジトリの容量制限によりBitbucketでは管理出来たのにGitHubでは管理できないものがありました。最初は分からず何度も試してました。
そのせいでメールボックスには"failed"が沢山届いています。つらいです。
対策(Git LFS)
それを直すために、まずは容量を減らすことを考え、Git LFSを使いました。
いろいろと調べたのですが、私がよく使っているSourcetreeでは少しやり方が違っていました。
参考サイトURL : http://blog.techlab-xe.net/archives/4390
SourcetreeではGiとGit LFSを入れなくてもSourcetreeに入っているので大丈夫なはずです。
(私はこんなものがあることは知っていたのですがGit Bashに該当するとはつゆも知らずGitとGit LFSを入れました。)
これがそれを開いた直後のものです。このときのGit LFSのバージョンは2.4.0です。
そしてgit LFSに管理するものを指定します。
$ git lfs track "*.png"
指定したら確認します。
$ git lfs track
Listing tracked patterns
*.png (.gitattributes)
上のようになっていたら[.gitattributes]が自動生成され、コミットするよう指示されます。
ですが、これだけでは最新のコミットのみに適応されるだけで過去のコミットには適応されません。
一回のプッシュ容量的にGitHubの移行は失敗すると思われます。
対策2
そのため過去のコミットも軽量化します。
これについてはこのサイトを参考にしました。私では理解がまだ足りていないので、細かい説明は割愛します。
参照サイトURL : https://qiita.com/ikmski/items/0faf9eae808ff29f6358
嬉しい
そうすることで以下のようになります。
このようにBitbucketのリポジトリ詳細に[Git Large File Storage]に容量が記載されます。サイズはなんとなく隠しました。(LFSでバレるけど…)
このあとで一番上のようにGitHubにコミットすれば移行が成功します。
途中でLFSをどう扱うかの確認が出ますが適宜対応してください。