

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Invia i commit a un repository Git aggiuntivo
<a name="how-to-mirror-repo-pushes"></a>

È possibile configurare il repository locale per eseguire il push delle modifiche a due repository remoti. Ad esempio, potrebbe essere necessario continuare a utilizzare la soluzione di repository Git esistente per sperimentare AWS CodeCommit. Segui questi passaggi di base per inviare le modifiche nel tuo repository locale a CodeCommit un repository Git separato.

**Suggerimento**  
Se non disponi di un repository Git, puoi crearne uno vuoto su un servizio diverso da CodeCommit e quindi migrare il tuo CodeCommit repository su di esso. È consigliabile seguire i passaggi simili a quelli indicati in[Migrare a CodeCommit](how-to-migrate-repository.md).

1. Dal prompt dei comandi o da un terminale, passare alla directory del repository locale ed eseguire il comando **git remote -v**. Verrà visualizzato un output simile al seguente:

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

   Per 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. Esegui il **git remote set-url --add --push origin *git-repository-name*** comando where *git-repository-name* è l'URL e il nome del repository Git in cui desideri ospitare il codice. Questo modifica la destinazione push di `origin` a quel repository Git.
**Nota**  
**git remote set-url --add --push** sostituisce l'URL predefinito per i push, quindi è necessario eseguire due volte il comando, come dimostrato nelle fasi successive.

   Ad esempio, il comando seguente modifica il push of origin in*some-URL*/MyDestinationRepo:

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

   Questo comando non restituisce alcun risultato.
**Suggerimento**  
Se stai eseguendo il push verso un repository Git che richiede credenziali, assicurati di configurare tali credenziali in un helper per le credenziali o nella configurazione della stringa. *some-URL* in caso contrario, i push a tale repository non riescono.

1. Eseguire di nuovo il comando **git remote -v**, che dovrebbe creare un output simile al seguente:

   Per HTTPS:

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

   Per SSH:

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

1. Ora aggiungi il repository. CodeCommit Eseguire di nuovo il comando **git remote set-url --add --push origin**, ma questa volta selezionando l'URL e il nome del repository CodeCommit.

   Ad esempio, il comando seguente aggiunge il push of **origin** a https://git-codecom mit.us-east-2.amazonaws. com/v1/repos/MyDemoRepo:

   Per HTTPS:

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

   Per SSH:

    

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

   Questo comando non restituisce alcun risultato.

1. Eseguire di nuovo il comando **git remote -v**, che dovrebbe creare un output simile al seguente:

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

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

   Ora hai due repository Git come destinazione per i tuoi push, ma i push vanno prima a *some-URL* /. MyDestinationRepo Se il push a quel repository ha esito negativo, i commit non sono eseguiti a entrambi i repository.
**Suggerimento**  
Se l'altro repository richiede credenziali che desideri inserire manualmente, valuta la possibilità di modificare l'ordine dei push in modo da inviare per primo. CodeCommit Eseguire **git remote set-url --delete** per eliminare il primo repository verso il quale è stato effettuato il push, quindi eseguire **git remote set-url --add** per aggiungerlo nuovamente in modo che diventi la seconda destinazione di push nell'elenco.   
Per altre opzioni, consulta la documentazione di Git.

1. Per verificare che i push siano effettuati verso entrambi i repository remoti, utilizzare un editor di testo per creare il seguente file di testo nel repository locale:

   ```
   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. Eseguire **git add** per posizionare la modifica nel repository locale:

   ```
   git add bees.txt
   ```

1. Eseguire **git commit** per eseguire il commit della modifica nel repository locale:

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

1. Per inviare il commit dal repository locale ai tuoi repository remoti, esegui **git push -u *remote-name* *branch-name*** where *remote-name* è il soprannome che il repository locale usa per i repository remoti ed *branch-name* è il nome del ramo da inviare al repository.
**Suggerimento**  
È sufficiente utilizzare l'opzione `-u` al primo push. Vengono quindi impostate le informazioni di registrazione upstream.

   Ad esempio, l'esecuzione di **git push -u origin main** dimostrerebbe l'esecuzione del push verso entrambi i repository remoti nei rami previsti, con un output simile a:

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

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

Per altre opzioni, consulta la documentazione di Git.