個人アカウントのリポジトリをGithub Organizationに移管(Amplify )

現在の状況としては、対象のリポジトリがAmplify Gen2に連携してデプロイ済みなのですが、そのリポジトリが個人アカウントで管理されています。

やりたいこととしては、これを企業アカウントのリポジトリとして管理できるように移行したいと考えています。

GitHub リポジトリの引き継ぎ方法の選択肢

  • Transfer Repository
  • コピー git push –mirror
  • フォーク

いずれもの方法でリポジトリを引き継いだとしても、Amplify側で新リポジトリに接続しなおす必要があります

再連携をしない限り移行先のリポジトリからデプロイ(更新の反映)はできません、すでに公開されているアプリはそのまま動き続ける

コミット履歴個人アカウント側
Transfer Repository全て残るリポジトリは消える
移管先の Organization に自動的に コラボレータ(権限付きメンバー)として追加 される?
コピー git push –mirror全て残る
フォークフォーク元関連が残る?

Transfer Repository

リポジトリをTransfer

一時的に旧リポジトリは新リポジトリにリダイレクト

そのためAmplify 側で再ビルドした場合、
一時的に新リポジトリを連携していなくてもビルドされる?

新リポジトリで修正し、その内容をもとにプッシュ、ビルドする前にAmplify に連携が必要

コピー git push –mirror

–mirrorオプションはbare repository(ベアリポジトリ)を使用します

bare repositoryとは通常とは異なり、作業ツリーがないリポジトリ

myproject/
  ├── .git/         ← Gitの管理情報
  ├── src/          ← 実際のソースコード
  ├── index.html
  └── ...
myproject.git/      ← 作業ツリーなし
  ├── HEAD
  ├── objects/
  ├── refs/
  └── config

なぜbare repositoryをバックアップで使用すべき理由は以下の通りです

  • 通常クローンは「開発用に便利な形」に変換される
  • bare クローンは「元と全く同じ形」でコピーされる
  • バックアップは bare を選べば安全

リポジトリのバックアップ作業

GitHubリポジトリの移行手順と注意点まとめ(2025年版)
https://zenn.dev/arsaga/articles/2b654ebdf82571?utm_source=chatgpt.com#%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E4%BD%9C%E6%A5%AD

手順

# SSHでリポジトリを完全コピー
git clone --mirror git@github.com:USER/REPO.git

GitHub 上で新規リポジトリを作成 REPO-archive

# archiveという名前のリモートを追加
git remote add archive git@github.com:USER/REPO-archive.git


git remote -v

origin   git@github.com:USER/REPO.git (fetch)
origin   git@github.com:USER/REPO.git (push)
archive  git@github.com:USER/REPO-archive.git (fetch)
archive  git@github.com:USER/REPO-archive.git (push)
# archiveリモートににプッシュ
git push --mirror archive

Organization 管理者の承認

メンバーにリポジトリ移管の受け入れが許可されているか

移管の受け入れ(Transfer の承認)をメンバーに許可しているか?

外部サービスとの連携をしているリポジトリの場合

GitHub Organization 配下のリポジトリは、個人アカウントのリポジトリと違い、
アプリや外部サービスがアクセスする際に Organization 管理者の承認 が必要

Amplify との連携の許可の場合

GitHub 組織設定にてAmplify(GitHub App または OAuth App)の承認がOrganization管理者にて要対応
※AmplifyのGitリポジトリからデプロイする機能使用するため