

Amazon non CodeCatalyst è più aperta a nuovi clienti. I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Come migrare da CodeCatalyst](migration.md).

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

# Organizzazione del codice sorgente, lavoro con le filiali di Amazon CodeCatalyst
<a name="source-branches"></a>

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 usare branch per sviluppare nuove funzionalità, archiviare una versione specifica del tuo progetto e altro ancora. È possibile configurare regole per le filiali negli archivi di origine per limitare determinate azioni su un ramo a ruoli specifici in quel progetto.

I repository di origine in Amazon CodeCatalyst hanno contenuti e un ramo predefinito indipendentemente da come li crei. Gli archivi collegati potrebbero non avere un ramo o un contenuto predefinito, ma non sono utilizzabili CodeCatalyst finché non li inizializzi e non crei un ramo predefinito. Quando crei un progetto utilizzando un blueprint, CodeCatalyst crea un repository di origine per quel progetto che include un file README.md, codice di esempio, definizioni del flusso di lavoro e altre risorse. *Quando si crea un archivio di origine senza utilizzare un blueprint, viene aggiunto automaticamente un file README.md come primo commit e viene creato automaticamente un ramo predefinito.* *Questo ramo predefinito è denominato main.* Questo ramo predefinito è quello utilizzato come ramo di base o predefinito nei repository locali (repos) quando gli utenti clonano il repository.

**Nota**  
Non è possibile eliminare il ramo predefinito. Il primo ramo creato per un repository di origine è il ramo predefinito per quel repository. Inoltre, la ricerca mostra solo i risultati del ramo predefinito. Non puoi cercare codice in altre filiali.

La creazione di un repository in crea CodeCatalyst anche un primo commit, che crea un *ramo predefinito* con un file README.md incluso. *Il nome di quel ramo predefinito è main.* Questo è il nome di ramo predefinito utilizzato negli esempi di questa guida. 

**Topics**
+ [Creare un ramo](source-create-delete-branch.md)
+ [Gestione del ramo predefinito per un repository](source-branches-default-branch.md)
+ [Gestisci le azioni consentite per una filiale con le regole della filiale](source-branches-branch-rules.md)
+ [Comandi Git per filiali](source-branches-git.md)
+ [Visualizzazione delle filiali e dei dettagli](source-branches-view.md)
+ [Eliminazione di un ramo](source-branches-delete.md)

# Creare un ramo
<a name="source-create-delete-branch"></a>

Puoi usare la CodeCatalyst console per creare filiali in un CodeCatalyst repository. I rami che crei saranno visibili agli altri utenti la prossima volta che recupereranno le modifiche dal repository. 

**Suggerimento**  
Puoi anche creare rami come parte della creazione di un ambiente di sviluppo per lavorare sul tuo codice. Per ulteriori informazioni, consulta [Creazione di un ambiente di sviluppo](devenvironment-create.md).

Puoi anche usare Git per creare rami. Per ulteriori informazioni, consulta [Comandi Git comuni per le filiali](source-branches-git.md#source-branches-git-table).

**Per creare un ramo (console)**

1. Nella CodeCatalyst console, accedi al progetto in cui risiede il tuo repository di origine.

1. Scegli il nome del repository dall'elenco dei repository di origine per il progetto. In alternativa, nel riquadro di navigazione, scegli **Codice**, quindi scegli Archivi di **origine**.

1. Scegli il repository in cui desideri creare un ramo.

1. Nella pagina di panoramica del repository, scegli **Altro**, quindi scegli **Crea** ramo.

1. Inserisci un nome per il ramo.

1. Scegliete un ramo da cui creare il ramo, quindi scegliete **Crea**. 

# Gestione del ramo predefinito per un repository
<a name="source-branches-default-branch"></a>

Puoi specificare quale ramo utilizzare come *ramo predefinito* in un repository di origine in Amazon CodeCatalyst. Tutti i repository di origine CodeCatalyst hanno contenuti e un ramo predefinito, indipendentemente da come li crei. *Se si utilizza un blueprint per creare un progetto, il ramo predefinito nel repository di origine creato per quel progetto è denominato main.* Il contenuto del ramo predefinito viene visualizzato automaticamente nella pagina di panoramica di quel repository.

**Importante**  
CodeCatalyst non supporta il rilevamento delle modifiche nel ramo predefinito per i repository collegati. Per modificare il ramo predefinito per un repository collegato, è necessario prima scollegarlo CodeCatalyst, modificare il ramo predefinito e quindi collegarlo nuovamente. Per ulteriori informazioni, consulta [Collegamento di GitHub repository, repository Bitbucket, repository di progetti e GitLab progetti Jira in CodeCatalyst](extensions-link.md).  
È consigliabile assicurarsi sempre di disporre della versione più recente dell'estensione prima di collegare un repository.

Il ramo predefinito viene trattato in modo leggermente diverso rispetto a tutti gli altri rami in un repository di origine. Ha un'etichetta speciale accanto al suo nome, **Default**. Il ramo predefinito è quello usato come ramo base o predefinito nei repository locali (repository) quando gli utenti clonano il repository su computer locali con un client Git. È anche l'impostazione predefinita utilizzata durante la creazione di flussi di lavoro per l'archiviazione dei file YAML del flusso di lavoro e per l'archiviazione delle informazioni relative ai problemi. Quando si utilizza la ricerca in CodeCatalyst, viene eseguita la ricerca solo nel ramo predefinito di un repository. Poiché il ramo predefinito è fondamentale per tanti aspetti dei progetti, non è possibile eliminare un ramo se è specificato come ramo predefinito. Tuttavia, puoi scegliere di utilizzare un ramo diverso come ramo predefinito. In tal caso, tutte [le regole di filiale](source-branches-branch-rules.md) applicate al precedente ramo predefinito verranno applicate automaticamente al ramo specificato come ramo predefinito.

**Nota**  
È necessario disporre del ruolo di amministratore del progetto per modificare il ramo predefinito per gli archivi di origine nei CodeCatalyst progetti. Questo non si applica ai repository collegati.

**Per visualizzare e modificare il ramo predefinito per un repository**

1. Vai al progetto in cui risiede il tuo repository.

1. Scegli il nome del repository dall'elenco dei repository di origine per il progetto. In alternativa, nel riquadro di navigazione, scegli **Codice**, quindi scegli Archivi di **origine**.

   Scegli il repository in cui desideri visualizzare le impostazioni, incluso il ramo predefinito.

1. Nella pagina di panoramica del repository, scegli **Altro**, quindi scegli **Gestisci** impostazioni.

1. Nel **ramo predefinito**, il nome del ramo specificato come ramo predefinito viene visualizzato insieme a un'etichetta chiamata **Default** accanto al nome. Questa stessa etichetta appare accanto al nome del ramo nell'elenco dei **rami in Branches**.

1. Per modificare il ramo predefinito, scegli **Modifica**.
**Nota**  
È necessario avere il ruolo di amministratore del progetto nel progetto per modificare il ramo predefinito.

1. **Scegli il nome del ramo che desideri impostare come ramo predefinito dall'elenco a discesa, quindi scegli Salva.**

# Gestisci le azioni consentite per una filiale con le regole della filiale
<a name="source-branches-branch-rules"></a>

Quando si crea un ramo, sono consentite determinate azioni per quel ramo in base alle autorizzazioni per quel ruolo. È possibile modificare le azioni consentite per un ramo specifico configurando le regole del ramo. Le regole di filiale si basano sul ruolo che un utente ha nel progetto. Puoi scegliere di limitare alcune azioni predefinite, come l'invio di commit a una filiale, agli utenti con un ruolo particolare in un progetto. Questo può aiutarti a proteggere filiali specifiche di un progetto limitando i ruoli autorizzati a eseguire determinate azioni. Ad esempio, se configurate una regola di filiale per consentire solo agli utenti con il ruolo di **amministratore di progetto** di unirsi o inviare messaggi a quel ramo, gli utenti con altri ruoli nel progetto non saranno in grado di apportare modifiche al codice del ramo in questione. 

È necessario considerare attentamente tutte le implicazioni della creazione di una regola per un ramo. Ad esempio, se scegli di limitare i push a una filiale agli utenti con il ruolo di **amministratore di progetto**, gli utenti con il ruolo di **Collaboratore non saranno in grado di creare o** modificare i flussi di lavoro in quel ramo, poiché il flusso di lavoro YAML è archiviato in quel ramo e tali utenti non possono eseguire il commit e inviare modifiche allo YAML. Come procedura consigliata, verifica tutte le regole di filiale dopo averle create per assicurarti che non abbiano impatti non previsti. Puoi anche utilizzare le regole di filiale insieme alle regole di approvazione per le pull request. Per ulteriori informazioni, consulta [Gestione dei requisiti per l'unione di una pull request con le regole di approvazione](source-pull-requests-approval-rules.md).

**Nota**  
È necessario disporre del ruolo di amministratore di progetto per gestire le regole di filiale per gli archivi di origine nei CodeCatalyst progetti. Non è possibile creare regole di filiale per gli archivi collegati.  
È possibile creare solo regole di filiale più restrittive rispetto alle autorizzazioni predefinite per il ruolo. Non è possibile creare regole di filiale più permissive di quelle consentite dal ruolo di un utente nel progetto. Ad esempio, non è possibile creare una regola di filiale che consenta agli utenti con il ruolo di revisore di accedere alla filiale.

Le regole di filiale applicate al ramo predefinito del repository di origine si comporteranno in modo leggermente diverso rispetto alle regole di filiale applicate ad altre filiali. Qualsiasi regola applicata al ramo predefinito verrà applicata automaticamente a qualsiasi ramo specificato come ramo predefinito. Il ramo precedentemente impostato come ramo predefinito manterrà le regole ad esso applicate, tranne per il fatto che non sarà più protetto contro l'eliminazione. Tale protezione viene applicata solo al ramo predefinito corrente.

Le regole di filiale hanno due stati, **Standard** e **Personalizzato**. **Standard** indica che le azioni consentite in una filiale sono quelle che corrispondono alle autorizzazioni per il ruolo ricoperto dall'utente CodeCatalyst per le azioni di filiale. Per ulteriori informazioni su quali ruoli dispongono di quali autorizzazioni, consulta. [Concessione dell'accesso con ruoli utente](ipa-roles.md) **Personalizzato** indica che una o più azioni di filiale prevedono azioni con un elenco specifico di ruoli autorizzati a eseguire quell'azione che differiscono dalle autorizzazioni predefinite concesse dal ruolo di un utente nel progetto. 

**Nota**  
Se crei una regola di filiale per limitare una o più azioni per un ramo, l'azione **Elimina il ramo** viene impostata automaticamente per consentire solo agli utenti con il ruolo di amministratore del progetto di eliminare quel ramo.

La tabella seguente elenca le azioni e le impostazioni predefinite per i ruoli autorizzati a eseguire queste azioni su un ramo.


**Azioni e ruoli della filiale**  

| **Azione di filiale** |  Ruoli autorizzati a eseguire questa azione quando non vengono applicate regole di filiale  | 
| --- | --- | 
|  Unisci al ramo (questo include l'unione di una pull request al ramo)  |  Amministratore del progetto, collaboratore  | 
|  Spingi verso la filiale  |  Amministratore del progetto, collaboratore  | 
|  Eliminare il ramo  |  Amministratore del progetto, collaboratore  | 
|  Elimina il ramo (ramo predefinito)  |  Non consentito  | 

 Non è possibile eliminare le regole del ramo, ma è possibile aggiornarle per consentire le azioni di tutti i ruoli che sarebbero autorizzati a eseguire questa azione su un ramo, il che rimuove effettivamente la regola.

**Nota**  
È necessario disporre del ruolo di amministratore di progetto per configurare le regole di filiale per gli archivi di origine nei CodeCatalyst progetti. Questo non si applica ai repository collegati. Gli archivi collegati non supportano le regole delle filiali in. CodeCatalyst<a name="view-edit-branch-rules"></a>

**Per visualizzare e modificare le regole delle filiali per un repository**

1. Vai al progetto in cui si trova il tuo repository.

1. Scegli il nome del repository dall'elenco dei repository di origine per il progetto. In alternativa, nel riquadro di navigazione, scegli **Codice**, quindi scegli Archivi di **origine**.

   Scegli il repository in cui desideri visualizzare le regole delle filiali.

1. **Nella pagina di panoramica del repository, scegli Branches.**

1. Nella colonna **Regole del ramo**, visualizza lo stato delle regole per ogni ramo del repository. **Standard** indica che le regole per l'azione delle filiali sono quelle predefinite per ogni ramo creato in un repository di origine e corrispondono alle autorizzazioni concesse a tali ruoli in un progetto. **Personalizzato** indica che una o più azioni di filiale dispongono di regole che limitano una o più azioni consentite per quel ramo a un diverso insieme di ruoli.

   Per visualizzare le specifiche delle regole di filiale per una filiale, scegli la parola **Standard** o **Personalizzato** accanto alla filiale che desideri esaminare. 

1. Per creare o modificare una regola di filiale, scegli **Gestisci impostazioni**. Nella pagina delle impostazioni per il repository di origine, in **Regole di filiale**, scegli **Modifica**.

1. In **Branch**, scegli il nome del ramo per il quale desideri configurare una regola dall'elenco a discesa. **Per ciascuno dei tipi di azione consentiti, scegli i ruoli a cui desideri consentire l'esecuzione di quell'azione dall'elenco a discesa, quindi scegli Salva.**

# Comandi Git per filiali
<a name="source-branches-git"></a>

Puoi usare Git per creare, gestire ed eliminare rami nel clone del repository di origine che hai sul tuo computer (il tuo repository locale) o nei tuoi ambienti di sviluppo, quindi eseguire il commit e inviare le modifiche al tuo repository di CodeCatalyst origine (il repository remoto). Esempio: 


**Comandi Git comuni per le filiali**  

|  |  | 
| --- |--- |
|  Elenca tutti i rami del repository locale con un asterisco (`*`) visualizzato accanto al ramo corrente.  |  `git branch`  | 
|  Recupera le informazioni su tutti i rami esistenti nel repository remoto nel repository locale.  |  `git fetch`  | 
|  Elenca tutte le filiali nel repository locale e le filiali di tracciamento remoto nel repository locale.  |  `git branch -a`  | 
|  Elenca solo le filiali di tracciamento remoto nel repository locale.  |  `git branch -r`  | 
|  Crea un ramo nel repository locale utilizzando il nome del ramo specificato. Questo ramo non verrà visualizzato nell'archivio remoto finché non si esegue il commit e si invia la modifica.  |  `git branch branch-name`  | 
|  Crea un ramo nel repository locale utilizzando il nome del ramo specificato, quindi passa ad esso.  |  `git checkout -b branch-name`  | 
|  Passa a un altro ramo nel repository locale utilizzando il nome del ramo specificato.  |  `git checkout other-branch-name`  | 
|  Passa un ramo dal repository locale all'archivio remoto utilizzando il nickname specificato dal repository locale per l'archivio remoto e il nome del ramo specificato. Imposta inoltre le informazioni di tracciamento a monte per la filiale nel repository locale.  |  `git push -u remote-name branch-name`  | 
|  Unisce le modifiche da un altro ramo nel repository locale al ramo corrente nel repository locale.   |  `git merge from-other-branch-name`  | 
|  Elimina un ramo nel repository locale a meno che non contenga lavori che non sono stati uniti.   |  `git branch -d branch-name`  | 
|  Elimina un ramo nell'archivio remoto utilizzando il soprannome specificato che il repository locale ha assegnato all'archivio remoto e il nome del ramo specificato. Da notare l'utilizzo dei due punti (`:`). In alternativa, specifica `--delete` come parte del comando.  | `git push remote-name :branch-name` `git push remote-name --delete branch-name`  | 

Per ulteriori informazioni, consulta la documentazione di Git.

# Visualizzazione delle filiali e dei dettagli
<a name="source-branches-view"></a>

Puoi visualizzare le informazioni sulle filiali remote in Amazon CodeCatalyst, incluse le specifiche di file, cartelle e il commit più recente per una filiale specifica, nella CodeCatalyst console Amazon. Puoi anche usare i comandi Git e il tuo sistema operativo locale per visualizzare queste informazioni per le filiali remote e locali.<a name="source-branches-view-console"></a>

**Per visualizzare le filiali (console)**

1. Nella CodeCatalyst console, accedi al progetto che contiene l'archivio dei sorgenti in cui desideri visualizzare i rami. Scegliete **Codice**, scegliete Archivi di **origine, quindi scegliete il repository** di origine.

1. Scegli il nome del repository dall'elenco dei repository di origine per il progetto. In alternativa, nel riquadro di navigazione, scegli **Codice**, quindi scegli Archivi di **origine**.

   Scegli il repository in cui desideri visualizzare un ramo.

1. Viene visualizzato il ramo predefinito del repository. È possibile visualizzare un elenco di file e cartelle nel ramo, informazioni sul commit più recente e il contenuto del file README.md, se presente nel ramo. Per visualizzare le informazioni relative a un ramo diverso, selezionalo dall'elenco a discesa dei rami del repository.

1. **Per visualizzare tutti i rami di un repository, scegli Visualizza tutto.** La pagina Branches mostra informazioni sul nome, sul commit più recente e sulle regole per ogni ramo.

Per informazioni su come usare Git e il sistema operativo per visualizzare rami e dettagli, consulta [Comandi Git comuni per le filiali](source-branches-git.md#source-branches-git-table), la documentazione Git e la documentazione del sistema operativo.

# Eliminazione di un ramo
<a name="source-branches-delete"></a>

Se non hai più bisogno di un ramo, puoi eliminarlo. Ad esempio, se hai unito un ramo con una modifica alla funzionalità nel ramo predefinito e tale funzionalità è stata rilasciata, potresti voler eliminare il ramo di funzionalità originale, poiché le modifiche fanno già parte del ramo predefinito. Mantenere basso il numero di filiali può aiutare gli utenti a trovare il ramo che contiene le modifiche su cui desiderano lavorare. Quando si elimina un ramo, le copie di quel ramo rimangono nei cloni del repository sui computer locali finché gli utenti non recuperano e sincronizzano le modifiche.<a name="source-branch-delete"></a>

**Per eliminare un ramo (console)**

1. Vai al progetto in cui risiede il tuo repository.

1. Scegli il nome del repository dall'elenco dei repository di origine per il progetto. In alternativa, nel riquadro di navigazione, scegli **Codice**, quindi scegli Archivi di **origine**.

   Scegli il repository in cui desideri eliminare un ramo.

1. **Nella pagina di panoramica del repository, scegli il selettore a discesa accanto al nome del ramo, quindi scegli Visualizza tutto.**

1. **Scegli il ramo che desideri eliminare, quindi scegli Elimina ramo.**
**Nota**  
Non è possibile eliminare il ramo predefinito per un repository.

1. Viene visualizzata una finestra di dialogo di conferma. Mostra il repository, il numero di richieste pull aperte e il numero di flussi di lavoro associati al ramo. 

1. **Per confermare l'eliminazione del ramo, digita **delete** nella casella di testo, quindi scegli Elimina.**

Puoi anche usare Git per eliminare i rami. Per ulteriori informazioni, consulta [Comandi Git comuni per le filiali](source-branches-git.md#source-branches-git-table).