

Amazon n' CodeCatalyst est plus ouvert aux nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour de plus amples informations, veuillez consulter [Comment effectuer une migration depuis CodeCatalyst](migration.md).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Organisation de votre code source : travaillez avec des branches sur Amazon CodeCatalyst
<a name="source-branches"></a>

Dans Git, les branches sont des pointeurs ou des références à un commit. Dans le développement, ils constituent un moyen pratique d'organiser votre travail. Vous pouvez utiliser des branches pour séparer le travail sur une version nouvelle ou différente des fichiers sans affecter le travail dans les autres branches. Vous pouvez utiliser des branches pour développer de nouvelles fonctionnalités, stocker une version spécifique de votre projet, etc. Vous pouvez configurer des règles pour les branches des référentiels sources afin de limiter certaines actions sur une branche à des rôles spécifiques dans ce projet.

Les référentiels sources d'Amazon CodeCatalyst contiennent du contenu et une branche par défaut, quelle que soit la manière dont vous les créez. Les référentiels liés peuvent ne pas avoir de branche ou de contenu par défaut, mais ils ne sont pas utilisables CodeCatalyst tant que vous ne les avez pas initialisés et créé une branche par défaut. Lorsque vous créez un projet à l'aide d'un plan, vous CodeCatalyst créez un référentiel source pour ce projet qui inclut un fichier README.md, un exemple de code, des définitions de flux de travail et d'autres ressources. Lorsque vous créez un référentiel source sans utiliser de plan, un fichier README.md est ajouté pour vous en tant que premier commit, et une *branche par défaut* est créée pour vous. Cette branche par défaut est nommée *main*. Cette branche par défaut est celle utilisée comme branche de base ou par défaut dans les référentiels locaux (dépôts) lorsque les utilisateurs clonent le référentiel.

**Note**  
Vous ne pouvez pas supprimer la branche par défaut. La première branche créée pour un dépôt source est la branche par défaut de ce dépôt. En outre, la recherche affiche uniquement les résultats de la branche par défaut. Vous ne pouvez pas rechercher de code dans d'autres branches.

La création d'un dépôt dans crée CodeCatalyst également un premier commit, qui crée une *branche par défaut* contenant un fichier README.md. Le nom de cette branche par défaut est *main*. Il s'agit du nom de branche par défaut utilisé dans les exemples de ce guide. 

**Topics**
+ [Création d'une branche](source-create-delete-branch.md)
+ [Gestion de la branche par défaut d'un dépôt](source-branches-default-branch.md)
+ [Gérer les actions autorisées pour une branche à l'aide de règles de branche](source-branches-branch-rules.md)
+ [Commandes Git pour les branches](source-branches-git.md)
+ [Afficher les branches et les détails](source-branches-view.md)
+ [Supprimer une branche](source-branches-delete.md)

# Création d'une branche
<a name="source-create-delete-branch"></a>

Vous pouvez utiliser la CodeCatalyst console pour créer des branches dans un CodeCatalyst référentiel. Les branches que vous créez seront visibles par les autres utilisateurs la prochaine fois qu'ils extrairont des modifications du référentiel. 

**Astuce**  
Vous pouvez également créer des branches dans le cadre de la création d'un environnement de développement pour travailler sur votre code. Pour de plus amples informations, veuillez consulter [Création d’un environnement de développement](devenvironment-create.md).

Vous pouvez également utiliser Git pour créer des branches. Pour de plus amples informations, veuillez consulter [Commandes Git communes pour les branches](source-branches-git.md#source-branches-git-table).

**Pour créer une branche (console)**

1. Dans la CodeCatalyst console, accédez au projet dans lequel se trouve votre référentiel source.

1. Choisissez le nom du référentiel dans la liste des référentiels sources du projet. Dans le volet de navigation, vous pouvez également choisir **Code**, puis **Référentiels sources**.

1. Choisissez le référentiel dans lequel vous souhaitez créer une branche.

1. Sur la page d'aperçu du référentiel, choisissez **Plus**, puis sélectionnez **Créer une branche**.

1. Entrez le nom de la branche.

1. Choisissez une branche à partir de laquelle créer la branche, puis choisissez **Create**. 

# Gestion de la branche par défaut d'un dépôt
<a name="source-branches-default-branch"></a>

Vous pouvez spécifier la branche à utiliser comme *branche par défaut* dans un référentiel source sur Amazon CodeCatalyst. Tous les référentiels sources CodeCatalyst contiennent du contenu et une branche par défaut, quelle que soit la manière dont vous les créez. Si vous utilisez un plan pour créer un projet, la branche par défaut du référentiel source créé pour ce projet est nommée *main*. Le contenu de la branche par défaut s'affiche automatiquement sur la page d'aperçu de ce référentiel.

**Important**  
CodeCatalyst ne prend pas en charge la détection des modifications dans la branche par défaut pour les référentiels liés. Pour modifier la branche par défaut d'un dépôt lié, vous devez d'abord en dissocier CodeCatalyst, modifier la branche par défaut, puis la lier à nouveau. Pour de plus amples informations, veuillez consulter [Lier GitHub les référentiels, les référentiels Bitbucket, les référentiels de GitLab projets et les projets Jira dans CodeCatalyst](extensions-link.md).  
Il est recommandé de toujours s'assurer que vous disposez de la dernière version de l'extension avant de lier un dépôt.

La branche par défaut est traitée un peu différemment de toutes les autres branches d'un dépôt source. Il possède une étiquette spéciale à côté de son nom, **Default**. La branche par défaut est celle utilisée comme branche de base ou par défaut dans les référentiels locaux (dépôts) lorsque les utilisateurs clonent le référentiel sur des ordinateurs locaux avec un client Git. Il s'agit également de la valeur par défaut utilisée lors de la création de flux de travail pour le stockage des fichiers YAML des flux de travail et pour le stockage des informations relatives aux problèmes. Lorsque vous utilisez la fonction de recherche dans CodeCatalyst, seule la branche par défaut d'un dépôt est recherchée. La branche par défaut étant fondamentale pour de nombreux aspects des projets, vous ne pouvez pas supprimer une branche si elle est spécifiée comme branche par défaut. Toutefois, vous pouvez choisir d'utiliser une autre branche comme branche par défaut. Dans ce cas, toutes [les règles de branche](source-branches-branch-rules.md) appliquées à l'ancienne branche par défaut seront automatiquement appliquées à la branche que vous spécifiez comme branche par défaut.

**Note**  
Vous devez avoir le rôle d'administrateur de projet pour modifier la branche par défaut des référentiels sources dans les CodeCatalyst projets. Cela ne s'applique pas aux référentiels liés.

**Pour afficher et modifier la branche par défaut d'un référentiel**

1. Accédez au projet dans lequel se trouve votre référentiel.

1. Choisissez le nom du référentiel dans la liste des référentiels sources du projet. Dans le volet de navigation, vous pouvez également choisir **Code**, puis **Référentiels sources**.

   Choisissez le référentiel dans lequel vous souhaitez afficher les paramètres, y compris la branche par défaut.

1. Sur la page d'aperçu du référentiel, choisissez **Plus**, puis sélectionnez **Gérer les paramètres**.

1. Dans **Branche par défaut**, le nom de la branche spécifiée comme branche par défaut est affiché avec une étiquette intitulée **Default** à côté du nom. Cette même étiquette apparaît à côté du nom de la branche dans la liste des **branches dans Branches**.

1. Pour modifier la branche par défaut, choisissez **Modifier**.
**Note**  
Vous devez avoir le rôle d'administrateur de projet dans le projet pour modifier la branche par défaut.

1. Choisissez le nom de la branche que vous souhaitez définir comme branche par défaut dans la liste déroulante, puis choisissez **Enregistrer**.

# Gérer les actions autorisées pour une branche à l'aide de règles de branche
<a name="source-branches-branch-rules"></a>

Lorsque vous créez une branche, certaines actions sont autorisées pour cette branche en fonction des autorisations associées à ce rôle. Vous pouvez modifier les actions autorisées pour une branche spécifique en configurant les règles de branche. Les règles de branche sont basées sur le rôle de l'utilisateur dans votre projet. Vous pouvez choisir de limiter certaines actions prédéfinies, telles que le transfert de validations vers une branche, aux utilisateurs ayant un rôle particulier dans un projet. Cela peut vous aider à protéger des branches spécifiques d'un projet en limitant les rôles autorisés à effectuer certaines actions. Par exemple, si vous configurez une règle de branche pour autoriser uniquement les utilisateurs ayant le rôle d'**administrateur de projet** à fusionner ou à transférer vers cette branche, les utilisateurs ayant d'autres rôles dans le projet ne pourront pas modifier le code de cette branche. 

Vous devez examiner attentivement toutes les implications de la création d'une règle pour une branche. Par exemple, si vous choisissez de limiter les push vers une branche aux utilisateurs ayant le rôle d'**administrateur de projet**, les utilisateurs ayant le rôle de **contributeur** ne pourront pas créer ou modifier des flux de travail dans cette branche, car le flux de travail YAML est stocké dans cette branche, et ces utilisateurs ne peuvent pas valider et transmettre des modifications au YAML. Il est recommandé de tester les règles de branche une fois que vous les avez créées afin de vous assurer qu'elles n'ont aucun impact que vous n'avez pas prévu. Vous pouvez également utiliser les règles de branche conjointement avec les règles d'approbation pour les pull requests. Pour de plus amples informations, veuillez consulter [Gestion des exigences relatives à la fusion d'une pull request avec les règles d'approbation](source-pull-requests-approval-rules.md).

**Note**  
Vous devez avoir le rôle d'administrateur de projet pour gérer les règles de branche pour les référentiels sources dans les CodeCatalyst projets. Vous ne pouvez pas créer de règles de branche pour les référentiels liés.  
Vous ne pouvez créer que des règles de branche plus restrictives que les autorisations par défaut pour le rôle. Vous ne pouvez pas créer de règles de branche plus permissives que ne le permet le rôle d'un utilisateur dans le projet. Par exemple, vous ne pouvez pas créer de règle de branche qui autorise les utilisateurs dotés du rôle de réviseur à accéder à la branche.

Les règles de branche appliquées à la branche par défaut de votre dépôt source se comporteront légèrement différemment des règles de branche appliquées aux autres branches. Toute règle appliquée à la branche par défaut sera automatiquement appliquée à toute branche que vous spécifiez comme branche par défaut. La branche précédemment définie comme branche par défaut conservera les règles qui lui sont appliquées, sauf qu'elle ne sera plus protégée contre la suppression. Cette protection ne s'applique qu'à la branche par défaut actuelle.

Les règles de branche ont deux états, **Standard** et **Personnalisé**. **Standard** indique que les actions autorisées sur une branche sont celles qui correspondent aux autorisations associées au rôle que l'utilisateur a CodeCatalyst pour les actions de branche. Pour en savoir plus sur les rôles dotés de quelles autorisations, consultez[Octroi d'accès avec des rôles d'utilisateur](ipa-roles.md). **Personnalisé** indique qu'une ou plusieurs actions de branche comportent des actions associées à une liste spécifique de rôles autorisés à effectuer cette action, différente des autorisations par défaut accordées par le rôle d'un utilisateur dans le projet. 

**Note**  
Si vous créez une règle de branche pour restreindre une ou plusieurs actions pour une branche, l'action **Supprimer la branche** est automatiquement définie pour autoriser uniquement les utilisateurs ayant le rôle d'administrateur de projet à supprimer cette branche.

Le tableau suivant répertorie les actions et les paramètres par défaut des rôles autorisés à effectuer ces actions sur une branche.


**Actions et rôles des succursales**  

| **Action sur les branches** |  Rôles autorisés à effectuer cette action lorsqu'aucune règle de branche n'est appliquée  | 
| --- | --- | 
|  Fusionner avec la branche (cela inclut la fusion d'une pull request avec la branche)  |  Administrateur de projet, contributeur  | 
|  Appuyez sur la branche  |  Administrateur de projet, contributeur  | 
|  Supprimer la branche  |  Administrateur de projet, contributeur  | 
|  Supprimer la branche (branche par défaut)  |  Non autorisée  | 

 Vous ne pouvez pas supprimer les règles de branche, mais vous pouvez les mettre à jour pour autoriser les actions de tous les rôles qui seraient autorisés à effectuer cette action sur une branche, ce qui supprime effectivement la règle.

**Note**  
Vous devez avoir le rôle d'administrateur de projet pour configurer les règles de branche pour les référentiels sources dans les CodeCatalyst projets. Cela ne s'applique pas aux référentiels liés. Les référentiels liés ne prennent pas en charge les règles de branche dans CodeCatalyst.<a name="view-edit-branch-rules"></a>

**Pour afficher et modifier les règles de branche d'un référentiel**

1. Accédez au projet dans lequel se trouve votre référentiel.

1. Choisissez le nom du référentiel dans la liste des référentiels sources du projet. Dans le volet de navigation, vous pouvez également choisir **Code**, puis **Référentiels sources**.

   Choisissez le référentiel dans lequel vous souhaitez consulter les règles de branche.

1. Sur la page d'aperçu du référentiel, choisissez **Branches**.

1. Dans la colonne **Règles de branche**, consultez l'état des règles pour chaque branche du référentiel. **Standard** indique que les règles d'action des branches sont les règles par défaut pour toutes les branches créées dans un référentiel source et qu'elles correspondent aux autorisations accordées à ces rôles dans un projet. **Personnalisé** indique qu'une ou plusieurs actions de branche sont soumises à des règles qui limitent une ou plusieurs actions autorisées pour cette branche à un ensemble de rôles différent.

   Pour consulter les détails des règles de branche d'une branche, choisissez le mot **Standard** ou **Personnalisé** à côté de la branche que vous souhaitez consulter. 

1. Pour créer ou modifier une règle de branche, choisissez **Gérer les paramètres**. Sur la page des paramètres du référentiel source, dans **Règles de branche**, choisissez **Modifier**.

1. Dans **Branche**, choisissez le nom de la branche pour laquelle vous souhaitez configurer une règle dans la liste déroulante. Pour chacun des types d'action autorisés, choisissez les rôles que vous souhaitez autoriser à effectuer cette action dans la liste déroulante, puis choisissez **Enregistrer**.

# Commandes Git pour les branches
<a name="source-branches-git"></a>

Vous pouvez utiliser Git pour créer, gérer et supprimer des branches dans le clone du dépôt source que vous avez sur votre ordinateur (votre dépôt local) ou dans vos environnements de développement, puis valider et transférer vos modifications dans votre dépôt CodeCatalyst source (le dépôt distant). Par exemple : 


**Commandes Git communes pour les branches**  

|  |  | 
| --- |--- |
|  Répertorie toutes les branches du dépôt local avec un astérisque (`*`) affiché à côté de votre branche actuelle.  |  `git branch`  | 
|  Extrait les informations relatives à toutes les branches existantes du référentiel distant vers le dépôt local.  |  `git fetch`  | 
|  Répertorie toutes les branches du dépôt local et les branches de suivi à distance du dépôt local.  |  `git branch -a`  | 
|  Répertorie uniquement les branches de suivi à distance dans le dépôt local.  |  `git branch -r`  | 
|  Crée une branche dans le dépôt local en utilisant le nom de branche spécifié. Cette branche n'apparaîtra pas dans le référentiel distant tant que vous n'aurez pas validé et appliqué la modification.  |  `git branch branch-name`  | 
|  Crée une branche dans le dépôt local en utilisant le nom de branche spécifié, puis y passe.  |  `git checkout -b branch-name`  | 
|  Passe à une autre branche du dépôt local en utilisant le nom de branche spécifié.  |  `git checkout other-branch-name`  | 
|  Transfère une branche du dépôt local vers le dépôt distant en utilisant le surnom spécifié par le dépôt local pour le dépôt distant et le nom de branche spécifié. Configure également les informations de suivi en amont pour la branche dans le dépôt local.  |  `git push -u remote-name branch-name`  | 
|  Fusionne les modifications d'une autre branche du dépôt local vers la branche actuelle du dépôt local.   |  `git merge from-other-branch-name`  | 
|  Supprime une branche du dépôt local sauf si elle contient du travail qui n'a pas été fusionné.   |  `git branch -d branch-name`  | 
|  Supprime une branche du référentiel distant en utilisant le surnom spécifié par le dépôt local pour le référentiel distant et le nom de branche spécifié. (Notez l'utilisation du signe deux points (`:`).) Vous pouvez également `--delete` le spécifier dans le cadre de la commande.  | `git push remote-name :branch-name` `git push remote-name --delete branch-name`  | 

Pour plus d'informations, consultez votre documentation Git.

# Afficher les branches et les détails
<a name="source-branches-view"></a>

Vous pouvez consulter des informations sur les succursales distantes d'Amazon CodeCatalyst, notamment les détails des fichiers, des dossiers et le dernier commit pour une branche spécifique, dans la CodeCatalyst console Amazon. Vous pouvez également utiliser les commandes Git et votre système d'exploitation local pour afficher ces informations pour les branches distantes et locales.<a name="source-branches-view-console"></a>

**Pour afficher les branches (console)**

1. Dans la CodeCatalyst console, accédez au projet qui contient le référentiel source dans lequel vous souhaitez afficher les branches. Choisissez **Code**, choisissez **Référentiels sources**, puis choisissez le référentiel source.

1. Choisissez le nom du référentiel dans la liste des référentiels sources du projet. Dans le volet de navigation, vous pouvez également choisir **Code**, puis **Référentiels sources**.

   Choisissez le référentiel dans lequel vous souhaitez afficher une branche.

1. La branche par défaut du référentiel s'affiche. Vous pouvez consulter la liste des fichiers et des dossiers de la branche, des informations sur le dernier commit et le contenu du fichier README.md, s'il existe dans la branche. Pour afficher les informations relatives à une autre branche, sélectionnez-la dans la liste déroulante des branches du référentiel.

1. Pour afficher toutes les branches d'un référentiel, choisissez **Afficher tout**. La page Branches affiche des informations sur le nom, le dernier commit et les règles de chaque branche.

Pour plus d'informations sur l'utilisation de Git et de votre système d'exploitation pour afficher les branches et les détails, consultez [Commandes Git communes pour les branches](source-branches-git.md#source-branches-git-table), votre documentation Git et la documentation de votre système d'exploitation.

# Supprimer une branche
<a name="source-branches-delete"></a>

Si vous n'avez plus besoin d'une branche, vous pouvez la supprimer. Par exemple, si vous avez fusionné une branche avec une modification de fonctionnalité dans la branche par défaut et que cette fonctionnalité a été publiée, vous souhaiterez peut-être supprimer la branche d'entité d'origine, car les modifications font déjà partie de la branche par défaut. Le fait de limiter le nombre de branches peut aider les utilisateurs à trouver la branche contenant les modifications sur lesquelles ils souhaitent travailler. Lorsque vous supprimez une branche, des copies de cette branche restent dans les clones du référentiel sur les ordinateurs locaux jusqu'à ce que les utilisateurs extraient et synchronisent ces modifications.<a name="source-branch-delete"></a>

**Pour supprimer une branche (console)**

1. Accédez au projet dans lequel se trouve votre référentiel.

1. Choisissez le nom du référentiel dans la liste des référentiels sources du projet. Dans le volet de navigation, vous pouvez également choisir **Code**, puis **Référentiels sources**.

   Choisissez le référentiel dans lequel vous souhaitez supprimer une branche.

1. Sur la page d'aperçu du référentiel, choisissez le sélecteur déroulant à côté du nom de la branche, puis choisissez **Afficher tout**.

1. Choisissez la branche que vous souhaitez supprimer, puis choisissez **Supprimer la branche**.
**Note**  
Vous ne pouvez pas supprimer la branche par défaut d'un référentiel.

1. Une boîte de dialogue de confirmation s'affiche. Il indique le référentiel, le nombre de pull requests ouvertes et le nombre de flux de travail associés à la branche. 

1. Pour confirmer la suppression de la branche, tapez **supprimer** dans la zone de texte, puis choisissez **Supprimer**.

Vous pouvez également utiliser Git pour supprimer des branches. Pour de plus amples informations, veuillez consulter [Commandes Git communes pour les branches](source-branches-git.md#source-branches-git-table).