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