

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à.

# Lavorare con le filiali nei repository AWS CodeCommit
<a name="branches"></a>

Cos'è un ramo? In Git, i rami sono puntatori o riferimenti a un commit. Nello sviluppo, sono un modo utile di organizzare il lavoro. Puoi usare i rami per separare il lavoro su una versione nuova o diversa dei file senza influire sul lavoro in altri rami. Puoi utilizzare i rami per sviluppare nuove caratteristiche, archiviare una versione specifica del progetto a partire da un particolare commit e molto altro. Quando crei il tuo primo commit, viene creato *automaticamente un ramo predefinito*. Questo ramo predefinito è quello utilizzato come ramo di base o predefinito nei repository locali (repository) quando gli utenti clonano il repository. Il nome di quel ramo predefinito varia a seconda di come si crea il primo commit. Se aggiungi il primo file al tuo repository utilizzando la CodeCommit console, la AWS CLI o una delle due SDKs, il nome di quel ramo predefinito è *main*. Questo è il nome di ramo predefinito utilizzato negli esempi di questa guida. Se esegui il push del primo commit utilizzando un client Git, il nome del ramo predefinito è quello specificato dal client Git come predefinito. Prendi in considerazione la possibilità di configurare il tuo client Git per utilizzare *main* come nome per il ramo iniziale.

In CodeCommit, puoi cambiare il ramo predefinito per il tuo repository. Puoi inoltre creare ed eliminare rami e visualizzare i dettagli su un ramo. Puoi confrontare rapidamente le differenze tra un ramo e il ramo predefinito (o tra due rami qualsiasi). Per visualizzare la cronologia dei rami e delle unioni nel repository, è possibile utilizzare il [visualizzatore Commit](how-to-view-commit-details.md#how-to-view-commit-details-console-visualizer), illustrato nell'immagine seguente.

![\[Una visualizzazione di rami in un repository\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-cv-complex1.png)


Per informazioni sull'utilizzo di altri aspetti del repository in CodeCommit, consulta[Lavorare con i repository](repositories.md),,, e. [Lavorare con i file](files.md) [Utilizzo delle richieste pull](pull-requests.md) [Lavorare con i commit](commits.md) [Utilizzo delle preferenze dell'utente](user-preferences.md) 

**Topics**
+ [Crea un ramo in AWS CodeCommit](how-to-create-branch.md)
+ [Limita i push e le unioni ai rami in AWS CodeCommit](how-to-conditional-branch.md)
+ [Visualizza i dettagli della filiale in AWS CodeCommit](how-to-view-branch-details.md)
+ [Confronta e unisci i rami in AWS CodeCommit](how-to-compare-branches.md)
+ [Modifica le impostazioni del ramo in AWS CodeCommit](how-to-change-branch.md)
+ [Elimina un ramo in AWS CodeCommit](how-to-delete-branch.md)

# Crea un ramo in AWS CodeCommit
<a name="how-to-create-branch"></a>

È possibile utilizzare la CodeCommit console o creare rami per il repository. AWS CLI Questo è un modo rapido per separare il lavoro su una versione dei file nuova o diversa senza influire sul lavoro nel ramo predefinito. Dopo aver creato un ramo nella CodeCommit console, devi inserire la modifica nel repository locale. In alternativa, puoi creare un ramo localmente e quindi utilizzare Git da un repository locale connesso al CodeCommit repository per inviare tale modifica. 

**Topics**
+ [Crea un ramo (console)](#how-to-create-branch-console)
+ [Crea un ramo (Git)](#how-to-create-branch-git)
+ [Crea un ramo (AWS CLI)](#how-to-create-branch-cli)

## Crea un ramo (console)
<a name="how-to-create-branch-console"></a>

È possibile utilizzare la CodeCommit console per creare un ramo in un CodeCommit repository. Gli utenti vedranno il nuovo ramo la prossima volta che eseguono il pull delle modifiche dal repository.

1. Apri la CodeCommit console su [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. In **Repositories (Repository)**, selezionare il nome del repository in cui si desidera creare un ramo. 

1. Nel riquadro di navigazione selezionare **Branches (Rami)**.

1. Selezionare **Crea branch (Crea ramo)**.   
![\[Creazione di un ramo nella console. CodeCommit\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-branches-create.png)

   Immettere un nome per il ramo in **Branch name (Nome ramo)**. In **Branch from (Ramo da)**, scegliere un ramo o un tag dall'elenco o incollare un ID commit. Selezionare **Crea branch (Crea ramo)**.

## Crea un ramo (Git)
<a name="how-to-create-branch-git"></a>

Segui questi passaggi per utilizzare Git da un repository locale per creare un ramo in un repository locale e quindi inviare quel ramo al CodeCommit repository.

Questi passaggi sono scritti partendo dal presupposto che tu abbia già collegato il repository locale al repository. CodeCommit Per istruzioni, consulta [Connessione a un repository](how-to-connect.md).

1. Crea un ramo nel tuo repository locale eseguendo il **git checkout -b *new-branch-name*** comando, *new-branch-name* dov'è il nome del nuovo ramo.

   Ad esempio, il comando seguente crea un ramo denominato `MyNewBranch` nel repository locale:

   ```
   git checkout -b MyNewBranch
   ```

1. Per inviare il nuovo ramo dal repository locale al CodeCommit repository, esegui il **git push** comando, specificando sia il che il. ***remote-name*** ***new-branch-name*** 

   Ad esempio, per inserire un nuovo ramo nel repository locale denominato nel CodeCommit repository con `MyNewBranch` il soprannome: `origin`

   ```
   git push origin MyNewBranch
   ```

**Nota**  
Se aggiungi l'`-u`opzione a **git push** (ad esempio,**git push -u origin main**), in futuro potrai farne a **git push** meno *remote-name**branch-name*. Vengono impostate le informazioni di registrazione upstream. Per ottenere le informazioni di registrazione upstream, eseguire **git remote show *remote-name*** (ad esempio, **git remote show origin**).  
Per vedere l'elenco di tutti i rami di registrazione remoti e locali, eseguire **git branch --all**.  
Per configurare un ramo nel repository locale collegato a un ramo del CodeCommit repository, esegui. **git checkout *remote-branch-name***

Per altre opzioni, consulta la documentazione di Git.

## Crea un ramo (AWS CLI)
<a name="how-to-create-branch-cli"></a>

Per utilizzare AWS CLI i comandi con CodeCommit, installa AWS CLI. Per ulteriori informazioni, consulta [Guida di riferimento alla riga di comando](cmd-ref.md). 

Segui questi passaggi per AWS CLI creare un ramo in un CodeCommit repository e poi invia quel ramo al CodeCommit repository. Per i passaggi per creare un commit iniziale e specificare il nome del ramo predefinito per un repository vuoto, consulta [Creare il primo commit per un repository](how-to-create-commit.md#create-first-commit) utilizzando il. AWS CLI

1. Eseguire il comando **create-branch** specificando:
   + Il nome del CodeCommit repository in cui viene creato il ramo (con l'**--repository-name**opzione).
**Nota**  
Per ottenere il nome del CodeCommit repository, esegui il comando [list-repositories](how-to-view-repository-details.md#how-to-view-repository-details-no-name-cli).
   + Il nome del nuovo ramo (con l'opzione **--branch-name**).
   + L'ID del commit a cui punta il nuovo ramo (con l'opzione **--commit-id**).

   Ad esempio, per creare un ramo denominato `MyNewBranch` che punti a commit ID `317f8570EXAMPLE` in un repository denominato: CodeCommit `MyDemoRepo`

   ```
   aws codecommit create-branch --repository-name MyDemoRepo --branch-name MyNewBranch --commit-id 317f8570EXAMPLE
   ```

   Questo comando restituisce un output solo se ci sono errori.

1. Per aggiornare l'elenco dei rami del CodeCommit repository disponibili nel repository locale con il nuovo nome del ramo remoto, esegui. **git remote update *remote-name***

   Ad esempio, per aggiornare l'elenco dei rami disponibili per il CodeCommit repository con il soprannome: `origin`

   ```
   git remote update origin 
   ```
**Nota**  
In alternativa, è possibile eseguire il comando **git fetch**. Puoi anche visualizzare tutti i rami remoti eseguendo**git branch --all**, ma finché non aggiorni l'elenco del repository locale, il ramo remoto che hai creato non appare nell'elenco.   
Per altre opzioni, consulta la documentazione di Git.

1. Per configurare un ramo nel repository locale connesso al nuovo ramo nel CodeCommit repository, esegui. **git checkout *remote-branch-name***

**Nota**  
 Per ottenere un elenco dei nomi dei CodeCommit repository e relativi URLs, esegui il comando. **git remote -v**

# Limita i push e le unioni ai rami in AWS CodeCommit
<a name="how-to-conditional-branch"></a>

Per impostazione predefinita, qualsiasi utente del CodeCommit repository che dispone di autorizzazioni sufficienti per inviare codice al repository può contribuire a qualsiasi ramo del repository. Questo è vero indipendentemente da come aggiungi un ramo al repository: utilizzando la console, la riga di comando o Git. Tuttavia, è possibile configurare un ramo in modo tale che solo alcuni utenti del repository possano inserire o eseguire il push del codice in quel ramo. Ad esempio, potresti configurare un ramo utilizzato per il codice di produzione in modo che solo un sottoinsieme di sviluppatori senior possa eseguire il push o unire le modifiche a tale ramo. Gli altri sviluppatori possono ancora estrarre dal ramo, creare propri rami e creare richieste pull, ma non possono eseguire push o unioni delle modifiche a quel ramo. Puoi configurare questo accesso creando una policy condizionale che utilizza una chiave di contesto per una o più filiali in IAM. 

**Nota**  
Per completare alcune delle procedure descritte in questo argomento, devi accedere con un utente amministrativo che disponga di autorizzazioni sufficienti per configurare e applicare le politiche IAM. Per ulteriori informazioni, consulta [Creazione di un utente e un gruppo di amministratori IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html). 

**Topics**
+ [Configura una policy IAM per limitare i push e le unioni a una filiale](#how-to-conditional-branch-create-policy)
+ [Applica la policy IAM a un gruppo o ruolo IAM](#how-to-conditional-branch-apply-policy)
+ [Prova la policy](#how-to-conditional-branch-test)

## Configura una policy IAM per limitare i push e le unioni a una filiale
<a name="how-to-conditional-branch-create-policy"></a>

Puoi creare una policy in IAM che impedisca agli utenti di aggiornare una filiale, incluso l'invio di commit a una filiale e l'unione delle richieste pull a una filiale. A tale scopo, la policy utilizza un'istruzione condizionale, in modo che l'effetto dell'istruzione `Deny` si applichi solo se la condizione è soddisfatta. Le azioni APIs che includi nella `Deny` dichiarazione determinano quali azioni non sono consentite. Puoi configurare questa politica in modo che si applichi a un solo ramo in un repository, a più rami in un repository o a tutti i rami che soddisfano i criteri in tutti i repository di un account Amazon Web Services. <a name="how-to-conditional-branch-create-policy-procedure"></a>

**Per creare una policy condizionale per i rami**

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Nel riquadro di navigazione, scegli **Policy**. 

1. Scegli **Create Policy** (Crea policy).

1. Scegliere **JSON** e incollare la policy di esempio seguente. Sostituire il valore di `Resource` con l'ARN del repository che contiene il ramo per cui si desidera limitare l'accesso. Sostituire il valore di `codecommit:References` con un riferimento al ramo o ai rami per cui si desidera limitare l'accesso. Ad esempio, questa politica vieta di inviare commit, unire rami, eliminare rami, eliminare file, unire richieste pull e aggiungere file a un ramo denominato e a un ramo denominato in un repository denominato*`main`*: `prod` `MyDemoRepo`

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Deny",
               "Action": [
                   "codecommit:GitPush",
                   "codecommit:DeleteBranch",
                   "codecommit:DeleteFile",
                   "codecommit:PutFile",
                   "codecommit:MergeBranchesByFastForward",
                   "codecommit:MergeBranchesBySquash",
                   "codecommit:MergeBranchesByThreeWay",
                   "codecommit:MergePullRequestByFastForward",
                   "codecommit:MergePullRequestBySquash",
                   "codecommit:MergePullRequestByThreeWay"
               ],
               "Resource": "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo",
               "Condition": {
                   "StringEqualsIfExists": {
                       "codecommit:References": [
                           "refs/heads/main", 
                           "refs/heads/prod"
                        ]
                   },
                   "Null": {
                       "codecommit:References": "false"
                   }
               }
           }
       ]
   }
   ```

------

   I rami in Git sono semplicemente puntatori (riferimenti) al valore SHA-1 del commit di testa ed è per questo che la condizione usa `References`. L'istruzione `Null` è obbligatoria in ogni policy il cui effetto è `Deny` e dove `GitPush` è una delle operazioni. Questo è necessario a causa del modo in cui Git e `git-receive-pack` funzionano quando si effettua il push delle modifiche da un repository locale a CodeCommit.
**Suggerimento**  
Per creare una politica che si applichi a tutte le filiali denominate main in tutti i repository di un account Amazon Web Services, modifica il valore di `Resource` da un repository ARN a un asterisco (). `*` 

1. Scegliere **Esamina policy**. Correggere gli eventuali errori nell'istruzione di policy e quindi continuare con **Create policy (Crea policy)**.

1. Quando il JSON è convalidato, viene visualizzata la pagina **Create policy (Crea policy)**. Viene visualizzato un avviso nella sezione **Summary (Riepilogo)** indicante che questa policy non concede autorizzazioni. Si tratta di un comportamento normale. 
   + In **Name (Nome)**, immettere un nome per la policy, ad esempio **DenyChangesToMain**.
   + In **Description (Descrizione)**, immettere una descrizione dello scopo della policy. Questo passaggio è facoltativo, ma è consigliato.
   + Scegli **Crea policy**.

## Applica la policy IAM a un gruppo o ruolo IAM
<a name="how-to-conditional-branch-apply-policy"></a>

Hai creato una policy che limita i push e le fusioni a una filiale, ma la policy non ha effetto finché non la applichi a un utente, gruppo o ruolo IAM. Come best practice, valuta la possibilità di applicare la policy a un gruppo o a un ruolo IAM. L'applicazione delle policy ai singoli utenti IAM non offre una scalabilità adeguata.<a name="how-to-conditional-branch-apply-policy-procedure"></a>

**Per applicare la policy condizionale a un gruppo o un ruolo**

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel pannello di navigazione, se desideri applicare la policy a un gruppo IAM, scegli **Gruppi**. Se desideri applicare la policy a un ruolo assunto dagli utenti, scegli **Ruolo**. Scegliere il nome del gruppo o del ruolo.

1. Nella scheda **Permissions** (Autorizzazioni), scegli **Attach Policy** (Associa policy).

1. Selezionare la policy condizionale creata dall'elenco delle policy e quindi scegliere **Attach policy (Collega policy)**.

Per ulteriori informazioni, consulta [Allegare e scollegare le politiche IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

## Prova la policy
<a name="how-to-conditional-branch-test"></a>

È necessario testare gli effetti della policy che hai applicato al gruppo o al ruolo per assicurarti che funzioni come previsto. Esistono molti modi per eseguire questa operazione. Ad esempio, per testare una policy simile a quella mostrata sopra, è possibile:
+ Accedi alla CodeCommit console con un utente IAM che è membro di un gruppo IAM a cui è stata applicata la policy o che assume un ruolo a cui è applicata la policy. Nella console aggiungi un file nel ramo in cui si applicano le restrizioni. Viene visualizzato un messaggio di errore quando tenti di salvare o caricare un file nel ramo. Aggiungi un file a un ramo diverso. L'operazione è completata.
+ Accedi alla CodeCommit console con un utente IAM che è membro di un gruppo IAM a cui è stata applicata la policy o che assume un ruolo a cui è applicata la policy. Creare una richiesta di pull che viene unita al ramo in cui si applicano le restrizioni. Potrai creare la richiesta di pull, ma riceverai un messaggio di errore se la tenti di unire. 
+ Dal terminale o dalla riga di comando, crea un commit sul ramo in cui si applicano le restrizioni, quindi trasferiscilo nel CodeCommit repository. Viene visualizzato un messaggio di errore. I commit e i push effettuati da altri rami funzionano normalmente.

# Visualizza i dettagli della filiale in AWS CodeCommit
<a name="how-to-view-branch-details"></a>

È possibile utilizzare la CodeCommit console per visualizzare i dettagli sulle filiali in un CodeCommit repository. Puoi visualizzare la data dell'ultimo commit a un ramo, il messaggio di commit e molto altro. Puoi anche usare Git AWS CLI o Git da un repository locale connesso al CodeCommit repository.

**Topics**
+ [Visualizza i dettagli della filiale (console)](#how-to-view-branch-details-console)
+ [Visualizza i dettagli della filiale (Git)](#how-to-view-branch-details-git)
+ [Visualizza i dettagli della filiale (AWS CLI)](#how-to-view-branch-details-cli)

## Visualizza i dettagli della filiale (console)
<a name="how-to-view-branch-details-console"></a>

Usa la CodeCommit console per visualizzare rapidamente un elenco di filiali per il tuo repository e i dettagli sulle filiali.

1. Apri la CodeCommit console su [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. In **Repositories (Repository)**, selezionare il nome del repository di cui si desidera visualizzare i dettagli dei rami. 

1. Nel riquadro di navigazione selezionare **Branches (Rami)**.  
![\[Una visualizzazione di rami in un repository\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-branches.png)

1. **Il nome del ramo usato come predefinito per il repository viene visualizzato accanto a Ramo predefinito.** Per visualizzare i dettagli relativi al più recente commit a un ramo, scegliere il ramo, quindi scegliere **View last commit (Visualizza ultimo commit)**. Per visualizzare i file e il codice in un ramo, scegli il nome del ramo. 

## Visualizza i dettagli della filiale (Git)
<a name="how-to-view-branch-details-git"></a>

Per utilizzare Git da un repository locale per visualizzare i dettagli sui rami di tracciamento locali e remoti di un CodeCommit repository, esegui il **git branch** comando.

I passaggi seguenti sono scritti partendo dal presupposto che il repository locale sia già stato collegato al repository. CodeCommit Per istruzioni, consulta [Connessione a un repository](how-to-connect.md).

1. Esegui il comando **git branch** e specifica l'opzione **--all**.

   ```
   git branch --all
   ```

1. Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
     MyNewBranch
   * main
     remotes/origin/MyNewBranch
     remotes/origin/main
   ```

   Accanto al ramo al momento aperto viene visualizzato un asterisco (`*`). Le voci che seguono sono riferimenti di registrazione remota.
**Suggerimento**  
**git branch** mostra i rami locali.  
**git branch -r** mostra i rami remoti.  
**git checkout *existing-branch-name*** passa al nome ramo specificato e, se **git branch** viene eseguito immediatamente dopo, lo visualizza con un asterisco (`*`).  
**git remote update *remote-name***aggiorna il repository locale con l'elenco dei rami del repository disponibili. CodeCommit (Per ottenere un elenco dei nomi dei CodeCommit repository e relativi URLs, esegui il **git remote -v** comando.)

Per altre opzioni, consulta la documentazione di Git.

## Visualizza i dettagli della filiale (AWS CLI)
<a name="how-to-view-branch-details-cli"></a>

Per utilizzare AWS CLI i comandi con CodeCommit, installa il AWS CLI. Per ulteriori informazioni, consulta [Guida di riferimento alla riga di comando](cmd-ref.md). 

Per utilizzare il AWS CLI per visualizzare i dettagli sui rami in un CodeCommit repository, esegui uno o più dei seguenti comandi:
+ Per visualizzare un elenco di nomi di rami, esegui [list-branches](#how-to-view-branch-details-cli).
+ [Per visualizzare informazioni su un ramo specifico, esegui get-branch.](#how-to-view-branch-details-cli-details)

### Come visualizzare un elenco di nomi delle ramificazioni
<a name="how-to-view-branch-details-cli-list"></a>

1. Esegui il **list-branches** comando, specificando il nome del CodeCommit repository (con l'opzione). `--repository-name`
**Suggerimento**  
[Per ottenere il nome del repository, esegui il comando CodeCommit list-repositories.](how-to-view-repository-details.md#how-to-view-repository-details-no-name-cli)

   Ad esempio, per visualizzare i dettagli sui rami in un repository denominato: CodeCommit `MyDemoRepo`

   ```
   aws codecommit list-branches --repository-name MyDemoRepo
   ```

1. In caso di successo, l'output del comando è un oggetto `branchNameList`, con una voce per ogni ramo.

   Questo è un esempio di output in base al comando di esempio precedente:

   ```
   {
       "branches": [
           "MyNewBranch",
           "main"
       ]
   }
   ```

### Per visualizzare informazioni su un ramo
<a name="how-to-view-branch-details-cli-details"></a>

1. Eseguire il comando **get-branch** specificando:
   + Il nome del repository (con l'opzione **--repository-name**).
   + Il nome del ramo (con l'opzione **--branch-name**).

   Ad esempio, per visualizzare le informazioni su un ramo denominato `MyNewBranch` in un CodeCommit repository denominato: `MyDemoRepo`

   ```
   aws codecommit get-branch --repository-name MyDemoRepo --branch-name MyNewBranch
   ```

1. In caso di successo, l'output di questo comando è il nome del ramo e l'ID dell'ultimo commit effettuato per il ramo.

   Questo è un esempio di output in base al comando di esempio precedente:

   ```
   {
       "branch": {
             "branchName": "MyNewBranch",
             "commitID": "317f8570EXAMPLE"
       }
   }
   ```

# Confronta e unisci i rami in AWS CodeCommit
<a name="how-to-compare-branches"></a>

È possibile utilizzare la CodeCommit console per confrontare i rami in un CodeCommit repository. Il confronto dei rami consente di visualizzare rapidamente le differenze tra un ramo e il ramo predefinito o visualizzare le differenze tra due rami qualsiasi.

**Topics**
+ [Confronta un ramo con il ramo predefinito](#how-to-compare-branches-default)
+ [Confronta due rami specifici](#how-to-compare-branches-two)
+ [Unisci due rami ()AWS CLI](#how-to-merge-branches-cli)

## Confronta un ramo con il ramo predefinito
<a name="how-to-compare-branches-default"></a>

Usa la CodeCommit console per visualizzare rapidamente le differenze tra un ramo e il ramo predefinito del tuo repository.

1. Apri la CodeCommit console su [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. In **Repositories (Repository)**, selezionare il nome del repository in cui si desidera confrontare i rami. 

1. Nel riquadro di navigazione scegliere **Commits (Commit)**, quindi selezionare la scheda **Compare commits (Confronta commit)**.

1. In **Destination (Destinazione)**, scegliere il nome del ramo predefinito. In **Source (Origine)**, scegliere il ramo da confrontare con il ramo predefinito. Scegli **Confronta**.

## Confronta due rami specifici
<a name="how-to-compare-branches-two"></a>

Usa la CodeCommit console per visualizzare le differenze tra due rami che desideri confrontare.

1. Apri la CodeCommit console su [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. In **Repositories (Repository)**, selezionare il nome del repository in cui si desidera confrontare i rami. 

1. Nel riquadro di navigazione scegliere **Commits (Commit)**, quindi selezionare la scheda **Compare commits (Confronta commit)**.

1. In **Destination (Destinazione)** e **Source (Origine)**, scegliere i due rami da confrontare e quindi scegliere **Compare (Confronta)**. Per visualizzare l'elenco dei file modificati, espandere l'elenco dei file modificati. È possibile visualizzare le modifiche nei file affiancati (visualizzazione doppia) o inline (visualizzazione unificata).
**Nota**  
Se hai effettuato l'accesso come utente IAM, puoi configurare e salvare le tue preferenze per la visualizzazione del codice e altre impostazioni della console. Per ulteriori informazioni, consulta [Utilizzo delle preferenze dell'utente](user-preferences.md).  
![\[Una panoramica abbreviata delle differenze tra due rami.\]](http://docs.aws.amazon.com/it_it/codecommit/latest/userguide/images/codecommit-compare-branches.png)

## Unisci due rami ()AWS CLI
<a name="how-to-merge-branches-cli"></a>

È possibile unire due rami in un CodeCommit repository utilizzando una delle strategie di unione disponibili eseguendo uno dei seguenti comandi: AWS CLI 
+ Per unire due rami utilizzando la strategia di unione avanzamento rapido, esegui il comando [**merge-branches-by-fast-forward**](#merge-branches-by-fast-forward).
+ Per unire due rami utilizzando la strategia di unione squash, esegui il comando[**merge-branches-by-squash**](#merge-branches-by-squash).
+ Per unire due rami utilizzando la strategia di unione a tre vie, esegui il comando [**merge-branches-by-three-way**](#merge-branches-by-three-way).

Puoi anche testare le unioni eseguendo il comando **create-unreferenced-merge-commit**. Per ulteriori informazioni, consulta [Risolvere i conflitti in una richiesta di pull](how-to-resolve-conflict-pull-request.md#create-unreferenced-merge-commit).

**Nota**  
Per utilizzare AWS CLI i comandi con CodeCommit, installa il. AWS CLI Per ulteriori informazioni, consulta [Guida di riferimento alla riga di comando](cmd-ref.md). 

**Da utilizzare AWS CLI per unire due rami in un repository CodeCommit**

1. <a name="merge-branches-by-fast-forward"></a>Per unire due rami utilizzando la strategia di unione avanzamento rapido, esegui il comando **merge-branches-by-fast-forward** specificando: 
   + Il nome del ramo di origine che contiene le modifiche che desideri unire (con l'opzione **--source-commit-specifier**). 
   + Il nome del ramo di destinazione in cui desideri unire le modifiche (con l'opzione **--destination-commit-specifier**). 
   + Il nome del repository (con l'opzione **--repository-name**).

    Ad esempio, per unire un ramo di origine denominato *bugfix-1234* in un ramo di destinazione denominato in un *preprod* repository denominato: *MyDemoRepo*

   ```
   aws codecommit merge-branches-by-fast-forward --source-commit-specifier bugfix-bug1234 --destination-commit-specifier preprod --repository-name MyDemoRepo
   ```

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
       "commitId": "4f178133EXAMPLE",
       "treeId": "389765daEXAMPLE"
   }
   ```

1. <a name="merge-branches-by-squash"></a>Per unire due rami utilizzando la strategia di unione squash, esegui il comando **merge-branches-by-squash** specificando:
   + Il nome del ramo di origine che contiene le modifiche che desideri unire (con l'opzione **--source-commit-specifier**). 
   + Il nome del ramo di destinazione in cui desideri unire le modifiche (con l'opzione **--destination-commit-specifier**). 
   + Il nome del repository (con l'opzione **--repository-name**).
   + Il messaggio di commit da includere (con l'opzione **--commit-message**).
   + Il nome da utilizzare per il commit (con l'opzione **--name**).
   + L'indirizzo e-mail da utilizzare per il commit (con l'opzione **--email**).

   Ad esempio, per unire un ramo di origine denominato *bugfix-bug1234* con un ramo di destinazione denominato *bugfix-quarterly* in un repository denominato: *MyDemoRepo*

   ```
   aws codecommit merge-branches-by-squash --source-commit-specifier bugfix-bug1234 --destination-commit-specifier bugfix-quarterly --author-name "Maria Garcia" --email "maria_garcia@example.com" --commit-message "Merging in fix branches to prepare for a general patch." --repository-name MyDemoRepo
   ```

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
       "commitId": "4f178133EXAMPLE",
       "treeId": "389765daEXAMPLE"
   }
   ```

1. <a name="merge-branches-by-three-way"></a>Per unire due rami utilizzando la strategia di unione a tre vie, esegui il comando **merge-branches-by-three-way** specificando:
   + Il nome del ramo di origine che contiene le modifiche che desideri unire (con l'opzione **--source-commit-specifier**). 
   + Il nome del ramo di destinazione in cui desideri unire le modifiche (con l'opzione **--destination-commit-specifier**). 
   + Il nome del repository (con l'opzione **--repository-name**).
   + Il messaggio di commit da includere (con l'opzione **--commit-message**).
   + Il nome da utilizzare per il commit (con l'opzione **--name**).
   + L'indirizzo e-mail da utilizzare per il commit (con l'opzione **--email**).

   Ad esempio, per unire un ramo di origine denominato *main* con un ramo di destinazione denominato *bugfix-1234* in un repository denominato: *MyDemoRepo*

   ```
   aws codecommit merge-branches-by-three-way --source-commit-specifier main --destination-commit-specifier bugfix-bug1234 --author-name "Jorge Souza" --email "jorge_souza@example.com" --commit-message "Merging changes from main to bugfix branch before additional testing."  --repository-name MyDemoRepo
   ```

   Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

   ```
   {
       "commitId": "4f178133EXAMPLE",
       "treeId": "389765daEXAMPLE"
   }
   ```

# Modifica le impostazioni del ramo in AWS CodeCommit
<a name="how-to-change-branch"></a>

È possibile modificare il ramo da utilizzare come ramo predefinito nella AWS CodeCommit console o con AWS CLI. Ad esempio, se hai creato il tuo primo commit utilizzando un client Git che imposta il ramo predefinito su *master*, puoi creare un ramo denominato *main* e quindi modificare le impostazioni del ramo in modo che il nuovo ramo sia impostato come ramo predefinito per il repository. Per modificare altre impostazioni del ramo, puoi usare Git da un repository locale collegato al CodeCommit repository. 

**Topics**
+ [Cambia il ramo predefinito (console)](#how-to-change-branch-console)
+ [Cambia il ramo predefinito ()AWS CLI](#how-to-change-branch-cli)

## Cambia il ramo predefinito (console)
<a name="how-to-change-branch-console"></a>

È possibile specificare quale ramo è il ramo predefinito in un CodeCommit repository nella AWS CodeCommit console. 

1. Apri la CodeCommit console su [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. In **Repositories (Repository)**, selezionare il nome del repository per cui si desidera modificare le impostazioni. 

1. Nel pannello di navigazione scegli **Impostazioni**.

1. In **Default branch (Ramo predefinito)**, scegliere l'elenco a discesa dei rami e quindi un altro ramo. Scegli **Save** (Salva).
**Suggerimento**  
Se non vedi un altro ramo nell'elenco a discesa, significa che non hai creato nessun ramo aggiuntivo. Non è possibile modificare il ramo predefinito di un repository se il repository ha un solo ramo. Per ulteriori informazioni, consulta [Crea un ramo in AWS CodeCommit](how-to-create-branch.md).
Se non vedi la sezione **Ramo predefinito** ma vedi invece gli elementi per le regole e le connessioni di notifica, ti trovi nel menu delle impostazioni generali della console. Il menu delle impostazioni per i repository è elencato in **Repository** allo stesso livello delle richieste **Code** e **Pull**.

## Cambia il ramo predefinito ()AWS CLI
<a name="how-to-change-branch-cli"></a>

Per utilizzare AWS CLI i comandi con CodeCommit, installa il AWS CLI. Per ulteriori informazioni, consulta [Guida di riferimento alla riga di comando](cmd-ref.md). 

Per utilizzare il comando AWS CLI per modificare le impostazioni del ramo di un repository in un CodeCommit repository, esegui il comando seguente:
+ [update-default-branch](#how-to-change-branch-cli-default) per modificare il ramo predefinito.

### Per modificare il ramo predefinito
<a name="how-to-change-branch-cli-default"></a>

1. Eseguire il comando **update-default-branch** specificando:
   + Il nome del CodeCommit repository in cui viene aggiornato il ramo predefinito (con l'**--repository-name**opzione).
**Suggerimento**  
Per ottenere il nome del CodeCommit repository, esegui il comando [list-repositories](how-to-view-repository-details.md#how-to-view-repository-details-no-name-cli).
   + Il nome del nuovo ramo predefinito (con l'opzione **--default-branch-name**).
**Suggerimento**  
[Per ottenere il nome del ramo, esegui il comando list-branches.](how-to-view-branch-details.md#how-to-view-branch-details-cli)

1. Ad esempio, per modificare il ramo predefinito `MyNewBranch` in un CodeCommit repository denominato: `MyDemoRepo`

   ```
   aws codecommit update-default-branch --repository-name MyDemoRepo --default-branch-name MyNewBranch
   ```

   Questo comando restituisce un output solo se ci sono errori.

Per altre opzioni, consulta la documentazione di Git.

# Elimina un ramo in AWS CodeCommit
<a name="how-to-delete-branch"></a>

È possibile utilizzare la CodeCommit console per eliminare un ramo in un repository. L'eliminazione di un ramo in CodeCommit non elimina quel ramo in un repository locale, quindi gli utenti potrebbero continuare ad avere copie di quel ramo fino alla prossima modifica. Per eliminare un ramo localmente e inviare la modifica al CodeCommit repository, usa Git da un repository locale connesso al CodeCommit repository. 

L'eliminazione di un ramo non elimina i commit. Vengono però eliminati tutti i riferimenti ai commit nel ramo in questione. Se si elimina un ramo che contiene commit che non sono stati uniti in un altro ramo del repository, non è possibile recuperare tali commit a meno che non si disponga del commit completo. IDs 

**Nota**  
Le istruzioni in questo argomento non possono essere utilizzate per eliminare un ramo predefinito di un repository. Se desideri eliminare il ramo predefinito, devi creare un ramo, impostarlo come ramo predefinito e quindi eliminare il ramo precedente. Per ulteriori informazioni, consultare [Creare un ramo](how-to-create-branch.md) e [Modificare le impostazioni della filiale](how-to-change-branch.md).

**Topics**
+ [Eliminare un ramo (console)](#how-to-delete-branch-console)
+ [Elimina un ramo ()AWS CLI](#how-to-delete-branch-cli)
+ [Eliminare un ramo (Git)](#how-to-delete-branch-git)

## Eliminare un ramo (console)
<a name="how-to-delete-branch-console"></a>

È possibile utilizzare la CodeCommit console per eliminare un ramo in un CodeCommit repository. 

1. Apri la CodeCommit console su [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. In **Repositories (Repository)** selezionare il nome del repository in cui si desidera eliminare un ramo. 

1. Nel riquadro di navigazione selezionare **Branches (Rami)**.

1. Individuare il nome del ramo da eliminare, scegliere **Delete branch (Elimina ramo)** e confermare la scelta.

## Elimina un ramo ()AWS CLI
<a name="how-to-delete-branch-cli"></a>

È possibile utilizzare il AWS CLI per eliminare un ramo in un CodeCommit repository, se quel ramo non è il ramo predefinito per il repository. Per ulteriori informazioni sull'installazione e l'utilizzo di AWS CLI, vedere. [Guida di riferimento alla riga di comando](cmd-ref.md) 

1. Dal terminale o dalla riga di comando, eseguire il comando **delete-branch**, specificando:
   + Il nome del CodeCommit repository in cui eliminare il ramo (con l'**--repository-name**opzione).
**Suggerimento**  
Per ottenere il nome del CodeCommit repository, esegui il comando [list-repositories](how-to-view-repository-details.md#how-to-view-repository-details-no-name-cli).
   + Il nome del ramo da eliminare (con l'opzione **branch-name**).
**Suggerimento**  
[Per ottenere il nome del ramo, esegui il comando list-branches.](how-to-view-branch-details.md#how-to-view-branch-details-cli)

1. Ad esempio, per eliminare un ramo denominato `MyNewBranch` in un CodeCommit repository denominato: `MyDemoRepo`

   ```
   aws codecommit delete-branch --repository-name MyDemoRepo --branch-name MyNewBranch
   ```

   Questo comando restituisce informazioni sul ramo eliminato, tra cui il nome e l'ID commit completo del commit HEAD del ramo. Esempio:

   ```
   "deletedBranch": {
       "branchName": "MyNewBranch",
       "commitId": "317f8570EXAMPLE"
   }
   ```

## Eliminare un ramo (Git)
<a name="how-to-delete-branch-git"></a>

Segui questi passaggi per utilizzare Git da un repository locale per eliminare un ramo in un CodeCommit repository.

Questi passaggi sono scritti partendo dal presupposto che tu abbia già collegato il repository locale al repository. CodeCommit Per istruzioni, consulta [Connessione a un repository](how-to-connect.md).

1. Per eliminare il ramo dal repository locale, esegui il **git branch -D *branch-name*** comando where *branch-name* è il nome del ramo che desideri eliminare.
**Suggerimento**  
Per ottenere un elenco di nomi di rami, eseguire **git branch --all**.

   Ad esempio, per eliminare un ramo nel repository locale denominato: `MyNewBranch`

   ```
   git branch -D MyNewBranch
   ```

1. Per eliminare il ramo dal CodeCommit repository, esegui il **git push *remote-name* --delete *branch-name*** comando dove *remote-name* è il soprannome che il repository locale usa per il CodeCommit repository ed *branch-name* è il nome del ramo che desideri eliminare dal repository. CodeCommit 
**Suggerimento**  
Per ottenere un elenco dei nomi dei CodeCommit repository e dei relativi URLs nomi, esegui il comando. **git remote -v**

   Ad esempio, per eliminare un ramo denominato `MyNewBranch` nel CodeCommit repository denominato: `origin`

   ```
   git push origin --delete MyNewBranch
   ```
**Suggerimento**  
Questo comando non elimina un ramo impostato come predefinito.

Per altre opzioni, consulta la documentazione di Git.