先日から新しいプロジェクトに参加することになりました。
元々は保守業務で利用していた GitLab のリポジトリをクローンし、ローカルブランチを作って作業を進めていたのですが、急遽「新しい GitLab を作ったので、今後はそちらにコミットしてほしい」と言われてしまいました。
ローカルに大量の変更があったので、「これ全部消えたらどうしよう…」と一瞬ヒヤッとしましたが、意外と簡単に移行できたので備忘録として残しておきます。
なお、以下はすべてコマンドでの操作になります。
0. 前提(ローカルブランチの作成と push)
GitLab間の移行手順に入る前に、“ローカルブランチ作成” と “リモートへの push” の基本手順を軽くまとめます。
0-1. ローカルブランチの作成
まずローカルブランチの作成方法を記載します。
以下のコマンドで、ローカルブランチの作成、作成したブランチへのチェックアウトが完了します。
git checkout -b 作成するブランチ名
ブランチがちゃんと作成されたか確認しておきましょう。
これはローカルブランチの一覧を見れるコマンドです。
git branch
0-2. ローカルブランチをリモートにpush
リモートにpushするコマンドです。
git push -u origin 作成したブランチ名
問題なくリモートにpushされたか確認しておきましょう。
git branch -r
リモートとローカルの両方のブランチを一覧で見たい場合は以下のコマンドです。
git branch -a
1. 新 GitLab を “別リモート” として登録
新しい GitLab を 別リモートとして追加することで、同じローカルリポジトリから複数の GitLab に push できるようになります。
まず、移行したいブランチが移行元 GitLab に push 済みであることを確認してください(まだの場合は 0-2 を参照)。
その後、移行先GitLabを別リモートとして登録します。
新GitLabのURLは、クローンする際のHTTPSのURLを使ってくださいね。
git remote add new-origin <新GitLabのURL>
登録されたリモートは以下で確認できます。
git remote -v
2. ブランチを新GitLabへ push
さて、本題のGitLab間のブランチ移行方法です。
ブランチ名を指定してpushするだけです!
※移行先に同名ブランチがすでに存在する場合は --force が必要になる場合がありますが、上書きには十分ご注意ください。
git push new-origin 作成したブランチ名
例)feature/add-comments ブランチをpushする場合
git push new-origin feature/add-comments
以上です。めっちゃ簡単でした。