

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 追加の Git リポジトリにコミットをプッシュする
<a name="how-to-mirror-repo-pushes"></a>

2 つのリモートリポジトリに変更をプッシュするようにローカルリポジトリを設定できます。たとえば、 AWS CodeCommitを試している間、既存の Git リポジトリソリューションを引き続き使用できるようにする場合があります。以下の基本的なステップに従って、ローカルリポジトリの変更を CodeCommit および別の Git リポジトリにプッシュします。

**ヒント**  
Git リポジトリがない場合は、CodeCommit 以外のサービスで空のリポジトリを作成し、CodeCommit リポジトリをそのリポジトリに移行できます。「」に示している同様の手順に従ってください[CodeCommit に移行する](how-to-migrate-repository.md)

1. コマンドプロンプトまたはターミナルから、ローカルの repo ディレクトリに切り替えて、**git remote -v** コマンドを実行します。次のような出力が表示されます。

   HTTPS の場合:

   ```
   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)
   ```

   SSH の場合:

    

   ```
   origin  ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch)
   origin  ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (push)
   ```

1. **git remote set-url --add --push origin *git-repository-name*** コマンドを実行します。ここで、*git-repository-name* はコードをホストする Git リポジトリの URL と名前です。このコマンドは `origin` のプッシュ先をその Git リポジトリに変更します。
**注記**  
**git remote set-url --add --push** は、プッシュのデフォルト URL よりも優先されるため、このコマンドを 2 回実行する必要があります。詳しくは後で説明します。

   例えば、以下のコマンドはオリジンのプッシュ先を *some-URL*/MyDestinationRepo に変更します。

   ```
   git remote set-url --add --push origin some-URL/MyDestinationRepo
   ```

   このコマンドは何も返しません。
**ヒント**  
認証情報を必要とする Git リポジトリにプッシュする場合は、認証情報ヘルパーまたは *some-URL* 文字列の設定で、それらの認証情報を設定してください。設定しないと、そのリポジトリへのプッシュは失敗します。

1. **git remote -v** コマンドをもう一度実行すると、以下のような出力が生成されます。

   HTTPS の場合:

   ```
   origin  https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch)
   origin  some-URL/MyDestinationRepo (push)
   ```

   SSH の場合:

   ```
   origin  ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch)
   origin  some-URL/MyDestinationRepo (push)
   ```

1. CodeCommit リポジトリを追加します。**git remote set-url --add --push origin** をもう一度実行します。今度は、CodeCommit リポジトリの URL とリポジトリ名を指定します。

   例えば、以下のコマンドは、**オリジン**のプッシュ を https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo に追加します。

   HTTPS の場合:

   ```
   git remote set-url --add --push origin https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo
   ```

   SSH の場合:

    

   ```
   git remote set-url --add --push origin ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo
   ```

   このコマンドは何も返しません。

1. **git remote -v** コマンドをもう一度実行すると、以下のような出力が生成されます。

   HTTPS の場合:

   ```
   origin  https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch)
   origin  some-URL/MyDestinationRepo (push)        
   origin  https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (push)
   ```

   SSH の場合:

    

   ```
   origin  ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch)
   origin  some-URL/MyDestinationRepo (push)        
   origin  ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (push)
   ```

   ここではプッシュ先として 2 つの Git リポジトリがありますが、最初に *some-URL*/MyDestinationRepo にプッシュされます。そのリポジトリへのプッシュが失敗すると、コミットはいずれのリポジトリにもプッシュされません。
**ヒント**  
他のリポジトリに手動で入力する認証情報が必要な場合は、プッシュ順を変更して、最初に CodeCommit にプッシュするようにしてください。**git remote set-url --delete** を実行して、最初にプッシュされるリポジトリを削除してから、**git remote set-url --add** を実行して、そのリポジトリをもう一度追加し、リストで 2 番目のプッシュ先になるようにします。  
他のオプションについては、Git のドキュメントを参照してください。

1. この時点で、両方のリモートリポジトリにプッシュしていることを確認するには、テキストエディタを使用して、ローカルリポジトリに以下のテキストファイルを作成します。

   ```
   bees.txt
   -------
   Bees are flying insects closely related to wasps and ants, and are known for their role in pollination and for producing honey and beeswax.
   ```

1. **git add** を実行して、変更をローカルリポジトリにステージングします。

   ```
   git add bees.txt
   ```

1. **git commit** を実行して、変更をローカルリポジトリにコミットします。

   ```
   git commit -m "Added bees.txt"
   ```

1. コミットをローカルリポジトリからリモートリポジトリにプッシュするには、**git push -u *remote-name* *branch-name*** を実行します。ここで、*remote-name* は、ローカルリポジトリがリモートリポジトリに使用するニックネームであり、*branch -name* は、リポジトリにプッシュするブランチの名前です。
**ヒント**  
`-u` オプションを使用する必要があるのは、初めてプッシュするときのみです。その後、アップストリーム追跡情報が設定されます。

   たとえば、**git push -u origin main** を実行すると、想定されるブランチの両方のリモートリポジトリにプッシュが送られ、以下のような出力が表示されます。

   HTTPS の場合:

   ```
   Counting objects: 5, done.
   Delta compression using up to 4 threads.
   Compressing objects: 100% (3/3), done.
   Writing objects: 100% (3/3), 5.61 KiB | 0 bytes/s, done.
   Total 3 (delta 1), reused 0 (delta 0)
   To some-URL/MyDestinationRepo
      a5ba4ed..250f6c3  main -> main
   Counting objects: 5, done.
   Delta compression using up to 4 threads.
   Compressing objects: 100% (3/3), done.
   Writing objects: 100% (3/3), 5.61 KiB | 0 bytes/s, done.
   Total 3 (delta 1), reused 0 (delta 0)
   remote:
   To https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo
      a5ba4ed..250f6c3  main -> main
   ```

   SSH の場合:

   ```
   Counting objects: 5, done.
   Delta compression using up to 4 threads.
   Compressing objects: 100% (3/3), done.
   Writing objects: 100% (3/3), 5.61 KiB | 0 bytes/s, done.
   Total 3 (delta 1), reused 0 (delta 0)
   To some-URL/MyDestinationRepo
      a5ba4ed..250f6c3  main -> main
   Counting objects: 5, done.
   Delta compression using up to 4 threads.
   Compressing objects: 100% (3/3), done.
   Writing objects: 100% (3/3), 5.61 KiB | 0 bytes/s, done.
   Total 3 (delta 1), reused 0 (delta 0)
   remote:
   To ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo
      a5ba4ed..250f6c3  main -> main
   ```

他のオプションについては、Git のドキュメントを参照してください。