facebook twitter hatena line email

Git/github/他gitからgithubへ移動

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

準備

Git LFS のインストール(macであれば)

brew install git-lfs

lfsを初めて使うリポジトリで必須

git lfs install

他gitからgithubへ移動の手順

bitbucketからの例

  1. bitbucketからcloneされたレポジトリのdirを、backupしておく
  2. bitbucketのレポジトリのbranchを、それぞれpullして最新へ
  3. bitbucketのremoteのurlを削除する
    git remote rm origin
  4. githubのremoteのurlを追加する
    git remote add origin git@github.com:user1/project1.unity.git
  5. ローカルブランチ間で、mergeする必要のものがあれば、対応しておく
  6. 不要なlfs履歴がないか確認する。以下で、ハイフンファイルが有れば使ってないので消す。
    git lfs ls-files --all
  7. github側へ各branchをpush

100MB問題でpushできない場合は以下項目を確認する。

git内の大きいファイル履歴をlfs化か削除

以下リンク先を、まずは検討する

git/大きなファイル履歴削除 [ショートカット]

無理そうなら以下を確認。

# リポジトリサイズ確認
git count-objects -vH

# 再度大きなファイルを検出(削除を確認)
git rev-list --objects --all | \
  git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' | \
  awk '/^blob/ {print substr($0,6)}' | \
  sort --numeric-sort --key=2 | \
  tail -n 10

# まだあるファイルの場合は該当ファイルを LFS に移行
git lfs migrate import --include="Assets/Firebase/Plugins/x86_64/FirebaseCppApp-11_8_0.bundle"

# もう無いファイルは、大きいファイルのgit履歴を削除(物理ファイルが削除されることがあるので気をつける)
git filter-repo --force --invert-paths --path docs/hogehoge.key

lfsが登録できない場合

以下ls-filesが表示されないときは、lfsに登録されてない

git lfs ls-files
git lfs ls-files --size # サイズ表示したい場合はこちら
git lfs ls-files --all # 登録したファイル履歴も全部を出したい