facebook twitter hatena line email

「Git/github/他gitからgithubへ移動」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(他gitからgithubへ移動の手順)
 
(同じ利用者による、間の11版が非表示)
行1: 行1:
 +
==準備==
 +
Git LFS のインストール(macであれば)
 +
brew install git-lfs
 +
 +
lfsを初めて使うリポジトリで必須
 +
git lfs install
 +
 
==他gitからgithubへ移動の手順==
 
==他gitからgithubへ移動の手順==
 
bitbucketからの例
 
bitbucketからの例
#bitbucketからcloneされたレポジトリをbackupしておく
+
#bitbucketからcloneされたレポジトリのdirを、backupしておく
 
#bitbucketのレポジトリのbranchを、それぞれpullして最新へ
 
#bitbucketのレポジトリのbranchを、それぞれpullして最新へ
 
#bitbucketのremoteのurlを削除する <pre>git remote rm origin</pre>
 
#bitbucketのremoteのurlを削除する <pre>git remote rm origin</pre>
 
#githubのremoteのurlを追加する <pre>git remote add origin git@github.com:user1/project1.unity.git</pre>
 
#githubのremoteのurlを追加する <pre>git remote add origin git@github.com:user1/project1.unity.git</pre>
 +
#ローカルブランチ間で、mergeする必要のものがあれば、対応しておく
 +
#不要なlfs履歴がないか確認する。以下で、ハイフンファイルが有れば使ってないので消す。<pre>git lfs ls-files --all</pre>
 +
#github側へ各branchをpush
 +
 +
100MB問題でpushできない場合は以下項目を確認する。
 +
 +
==git内の大きいファイル履歴をlfs化か削除==
 +
 +
以下リンク先を、まずは検討する
 +
 +
[[git/大きなファイル履歴削除]] [ショートカット]
 +
 +
無理そうなら以下を確認。
 +
 +
<pre>
 +
# リポジトリサイズ確認
 +
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
 +
</pre>
 +
 +
===lfsが登録できない場合===
 +
以下ls-filesが表示されないときは、lfsに登録されてない
 +
<pre>
 +
git lfs ls-files
 +
git lfs ls-files --size # サイズ表示したい場合はこちら
 +
git lfs ls-files --all # 登録したファイル履歴も全部を出したい
 +
</pre>

2025年6月8日 (日) 02:25時点における最新版

準備

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 # 登録したファイル履歴も全部を出したい