現在のリポジトリはどんなサービスを使っていても良いのかと思います。
CodeCommitはIAMの設定が必要です。これでアクセス制御するんですね。masterへはPushさせない設定とかできるかまだ未調査ですが。
参考
Git 認証情報を使用する HTTPS ユーザー用のセットアップ
Git: リモートのリポジトリを別のリモートリポジトリへコピーする
移行でやっていることは↑だけ。リポジトリ先の用意がAWSというだけ。
CodeCommitアクセス権の追加
※ユーザー作成は割愛します。ここでは権限の追加方法を記載します
- 「サービス」―「IAM」へ移動
- 「概要」ページの「アクセス権限」タブの「アクセス権の追加」―「既存のポリシーを直接アタッチ」より「AWSCodeCommitFullAccess」を追加する。またはReadOnlyなどもあるので合ったポリシーを追加する
- 「概要」ページの「認証情報」タブの「AWS CodeCommit の HTTPS Git 認証情報」の項目で生成を選び「User Name」「Password」を取得する
これをgitのpush,pullなどで使用することになる
CodeCommitにリポジトリ作成
- 「サービス」―「CodeCommit」から「リポジトリ」へ移動
- 「リポジトリの作成」ボタンからリポジトリを作成
移行作業(hoge_repoというリポジトリとします)
- リモートリポジトリのbearをミラーオプションでクローンします。
git clone --mirror https://[リポジトリ元]/hoge_repo.git hoge_repo
- Push先を移行先に切り替えます
cd hoge_repo git remote set-url --push origin https://[リポジトリ先]/hoge_repo
- 念のためFetchが移行元でPushが移行先の状態になっているか確認しておきましょう
git remote -v #origin https://[リポジトリ元]/hoge_repo (fetch) #origin https://[リポジトリ先]/hoge_repo (push)
- 移行元の変更を取り込みます
git fetch -p origin
- 移行先にすべてPush します(強制上書きなので注意)
git push --mirror