既存の Git リポジトリのクローンをソースリポジトリに作成する
既存の Git リポジトリを Amazon CodeCatalyst の空のソースリポジトリにクローンできます。これは、以前に別の Git リポジトリプロバイダーでホストされたコードを使用して CodeCatalyst を開始する簡単な方法です。リポジトリの内容をクローンするには、ミラークローンを作成し、ミラーを CodeCatalyst にプッシュします。または、コンテンツが CodeCatalyst に追加されるリポジトリのローカルリポジトリがある場合は、CodeCatalyst ソースリポジトリをローカルリポジトリの別のリモートとして追加し、空のソースリポジトリにプッシュできます。どちらのアプローチも同等に有効です。ミラークローンを使用すると、ブランチをマッピングするだけでなく、すべての参照をマッピングします。これは、CodeCatalyst でリポジトリの作業コピーを作成するシンプルで分かりやすい方法です。空の CodeCatalyst ソースリポジトリを指すローカルリポジトリにリモートを追加すると、リポジトリの内容が CodeCatalyst に追加されますが、ローカルリポジトリから CodeCatalyst ソースリポジトリと元の Git リモートリポジトリの両方にプッシュすることもできます。これは、コードを異なるリモートリポジトリに維持する場合に便利ですが、他のデベロッパーがリモートの 1 つだけにコードをコミットしている場合、矛盾が発生する場合があります。
以下の手順では、基本的な Git コマンドを使用してこのタスクを実行します。Git でタスクを実行するには、クローン作成など、さまざまな方法があります。詳細については、GitHub ドキュメント
重要
コンテンツをクローンする前に、CodeCatalyst に空のリポジトリを作成する必要があります。また、パーソナルアクセストークンも必要です。詳細については、「空のソースリポジトリを作成する」と「パーソナルアクセストークンを作成する」を参照してください。
git clone --mirror
を使用して既存の Git リポジトリを CodeCatalyst にクローンする
-
CodeCatalyst コンソールで、空のリポジトリを作成したプロジェクトに移動します。
-
プロジェクトの [概要] ページで、リストから空のリポジトリを選択し、[リポジトリを表示] を選択します。または、ナビゲーションペインで [コード] > [ソースリポジトリ] の順に選択します。プロジェクトのソースリポジトリのリストから空のリポジトリの名前を選択します。
-
空のリポジトリの HTTPS クローン URL をコピーします。これは、ミラークローンをプッシュするために必要です。例えば、ExampleCorp スペースの MyExampleProject プロジェクトでソースリポジトリ MyExampleRepo に名前を付け、ユーザー名が LiJuan の場合、クローン URL は次のようになります。
https://
LiJuan
@git.us-west-2.codecatalyst.aws/v1/ExampleCorp
/MyExampleProject
/MyExampleRepo
-
コマンドラインまたはターミナルウィンドウで、
git clone --mirror
コマンドを使用してCodeCatalyst にクローンする Git リポジトリのミラークローンを作成します。例えば、GitHub の codecatalyst-blueprints リポジトリのミラークローンを作成する場合は、次のコマンドを入力します。git clone --mirror
https://github.com/aws/codecatalyst-blueprints.git
-
クローンを作成したディレクトリに変更します。
cd
codecatalyst-blueprints.git
git push コマンドを実行して、送信先 CodeCatalyst リポジトリの URL と名前、および --all オプションを指定します (これは、ステップ 3 でコピーした URL です)。例:
git push https://
LiJuan
@git.us-west-2.codecatalyst.aws/v1/ExampleCorp
/MyExampleProject
/MyExampleRepo
--all
リモートを追加してローカルリポジトリを CodeCatalyst にプッシュする
-
CodeCatalyst コンソールで、空のリポジトリを作成したプロジェクトに移動します。
-
プロジェクトの [概要] ページで、リストから空のリポジトリを選択し、[リポジトリを表示] を選択します。または、ナビゲーションペインで [コード] > [ソースリポジトリ] の順に選択します。プロジェクトのソースリポジトリのリストから空のリポジトリの名前を選択します。
-
空のリポジトリの HTTPS クローン URL をコピーします。これは、ミラークローンをプッシュするために必要です。例えば、ExampleCorp スペースの MyExampleProject プロジェクトでソースリポジトリ MyExampleRepo に名前を付け、ユーザー名が LiJuan の場合、クローン URL は次のようになります。
https://
LiJuan
@git.us-west-2.codecatalyst.aws/v1/ExampleCorp
/MyExampleProject
/MyExampleRepo
-
コマンドラインまたはターミナルウィンドウで、CodeCatalyst にプッシュするローカルリポジトリへのディレクトリを変更します。
-
git remote -v コマンドを実行して、ローカルリポジトリの既存のリモートを確認します。例えば、米国東部 (オハイオ) リージョンで
MyDemoRepo
という名前の AWS CodeCommit リポジトリのローカルリポジトリをクローンする場合は、コマンド出力は次のようになります。origin https://git-codecommit.
us-east-2
.amazonaws.com/v1/repos/MyDemoRepo
(fetch) origin https://git-codecommit.us-east-2
.amazonaws.com/v1/repos/MyDemoRepo
(push)リポジトリを引き続き使用する場合は、リモート URL をコピーします。
-
git remote remove
コマンドを使用して、CodeCommit リポジトリ URL を削除し、オリジンを取得してプッシュします。git remote remove origin
-
git remote add コマンドを使用して、ローカルリポジトリのフェッチおよびプッシュリモートとして CodeCatalyst ソースリポジトリ URL を追加します。例:
git remote add origin https://
LiJuan
@git.us-west-2.codecatalyst.aws/v1/ExampleCorp
/MyExampleProject
/MyExampleRepo
これにより、CodeCommit リポジトリプッシュ URL は CodeCatalyst ソースリポジトリ URL に置き換えられますが、フェッチ URL は変更されません。したがって、git remote -v コマンドを再度実行すると、CodeCommit リモートリポジトリからコードをプル (フェッチ) していることが分かりますが、ローカルリポジトリから CodeCatalyst ソースリポジトリに変更をプッシュする設定になっています。
origin https://git-codecommit.
us-east-2
.amazonaws.com/v1/repos/MyDemoRepo
(fetch) origin https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo (push)git remote set-url
コマンドを使用して両方のリポジトリにプッシュする場合は、オプションで CodeCommit リモート URL を追加できます。git remote set-url --add --push origin https://git-codecommit.
us-east-2
.amazonaws.com/v1/repos/MyDemoRepo
git push
コマンドを実行して、ローカルリポジトリを設定済みのすべてのプッシュリモートにプッシュします。または、git push -u -origin コマンドを実行して、--all オプションを指定し、ローカルリポジトリを両方のリポジトリにプッシュします。例:git push -u -origin --all
ヒント
Git のバージョンによっては、--all が、ローカルリポジトリのすべてのブランチを空のリポジトリにプッシュするように機能しない場合があります。各ブランチを個別にチェックアウトしてプッシュする必要がある場合があります。