今回はGitリポジトリを別システムのGitリポジトリに移行した時の内容を備忘録的に書きます。
移行先はGitlabやGithubでも同じように出来ると思います。
手順
単純にcloneしてpushだとmasterブランチしか移行出来ません。
※移行したいBranchやTagを全部pushすればいいのですが・・・面倒です。
mirrorオプションを利用すると一発で移行出来ます。
–mirror
Set up a mirror of the source repository. This implies
https://git-scm.com/docs/git-clone/ja--bare
. Compared to--bare
,--mirror
not only maps local branches of the source to local branches of the target, it maps all refs (including remote-tracking branches, notes etc.) and sets up a refspec configuration such that all these refs are overwritten by agit remote update
in the target repository.
# 移行元clone
git clone --mirror 移行"元"GitリポジトリURL
# 確認
git remote -v
# 移行先URL設定
git remote set-url --push origin 移行"先"GitリポジトリURL
# 確認
git remote -v
# 移行先push
git push --mirror
念のため「git remote -v」でURLに誤りが無いことを確認しています。検証で確信がとれれば特に実行しなくてもOKです。
git → git移行は上記コマンドのように簡単に出来ます。ただ、実作業では念のため下記を実施してエビデンスを取ったほうがいいとは思います。
- ブランチやタグを比較
git branch -aやgit ls-remote –tags - ファイル内容を比較
winMerge等
まとめ
本記事ではgitからgitへの移行をご紹介しました。
git cloneやpush時のmirrorオプションがポイントです。
実施時は事前検証を行って手順を確実にしましょう。
最後までご覧いただき、ありがとうございました。
コメント