Skip to main content

À propos des branches

Utilisez une branche pour isoler le travail de développement sans affecter les autres branches du dépôt. Chaque dépôt a une branche par défaut et peut avoir plusieurs autres branches. Vous pouvez fusionner une branche dans une autre branche en utilisant une demande de tirage (pull request).

À propos des branches

Les branches vous permettent de développer des fonctionnalités, de corriger des bogues ou d’expérimenter en toute sécurité de nouvelles idées dans une zone contenue de votre dépôt.

Pour créer une branche, vous partez toujours d’une branche existante. En règle générale, vous pouvez créer une branche à partir de la branche par défaut de votre dépôt. Vous pouvez ensuite travailler sur cette nouvelle branche indépendamment des changements apportés au dépôt par d’autres personnes. Une branche que vous créez pour générer une fonctionnalité est généralement appelée branche de fonctionnalité ou branche de rubrique. Pour plus d’informations, consultez « Création et suppression de branches dans votre référentiel ».

Vous pouvez aussi utiliser une branche pour publier un site GitHub Pages. Pour plus d’informations, consultez « À propos de GitHub Pages ».

Vous devez disposer d’un accès en écriture à un dépôt pour créer une branche, ouvrir une demande de tirage (pull request) ou supprimer et restaurer des branches dans une demande de tirage. Pour plus d’informations, consultez « Autorisations d’accès sur GitHub ».

À propos de la branche par défaut

Quand vous créez un référentiel avec du contenu sur GitHub, GitHub crée ce référentiel avec une seule branche. Cette première branche du dépôt est la branche par défaut. La branche par défaut est la branche que GitHub présente quand une personne visite votre dépôt. La branche par défaut est également la branche initiale vers laquelle Git bascule localement quand une personne clone le dépôt. À moins que vous n’indiquiez une autre branche, la branche par défaut d’un dépôt est la branche de base pour les nouvelles demandes de tirage et les nouveaux commits de code.

Par défaut, GitHub nomme main la branche par défaut dans un nouveau dépôt.

Vous pouvez changer la branche par défaut d’un dépôt existant. Pour plus d’informations, consultez « Changement de la branche par défaut ».

Vous pouvez définir le nom de la branche par défaut pour les nouveaux dépôts. Pour plus d’informations, consultez « Gestion du nom de branche par défaut pour vos dépôts », « Gestion du nom de branche par défaut pour les dépôts de votre organisation » et « Application de stratégies de gestion des dépôts dans votre entreprise ».

Utilisation des branches

Une fois que vous êtes satisfait de votre travail, vous pouvez ouvrir une demande de tirage pour fusionner les changements de la branche actuelle (la branche principale) dans une autre branche (la branche de base). Pour plus d’informations, consultez « À propos des demandes de tirage (pull requests) ».

Une fois qu’une demande de tirage a été fusionnée ou fermée, vous pouvez supprimer la branche principale, car celle-ci n’est plus nécessaire. Vous devez disposer d’un accès en écriture au dépôt pour supprimer des branches. Vous ne pouvez pas supprimer les branches directement associées à des demandes de tirage ouvertes. Pour plus d’informations, consultez « Suppression et restauration de branches dans une demande de tirage ».

Si vous supprimez une branche de tête (head) une fois que sa demande de tirage a été fusionnée, GitHub recherche les demandes de tirage ouvertes du même dépôt qui spécifient la branche supprimée comme branche de base. GitHub met automatiquement à jour ces demandes de tirage, en remplaçant leur branche de base par la branche de base de la demande de tirage fusionnée. Les diagrammes suivants illustrent ce point.

Ici, une personne a créé une branche appelée feature1 à partir de la branche main, et vous avez ensuite créé une branche appelée feature2 à partir de feature1. Il existe des demandes de tirage ouvertes pour les deux branches. Les flèches indiquent la branche de base actuelle pour chaque demande de tirage. À ce stade, feature1 est la branche de base de feature2. Si vous fusionnez maintenant la demande de tirage pour feature2, la branche feature2 est fusionnée dans feature1.

Diagramme montrant une branche feature1 avec une demande de tirage ciblant main et une branche feature2 avec une demande de tirage ciblant feature1.

Dans le diagramme suivant, une personne a fusionné la demande de tirage pour feature1 dans la branche main, puis elle a supprimé la branche feature1. En conséquence, GitHub a automatiquement reciblé la demande de tirage pour feature2 afin que sa branche de base soit maintenant main.

Diagramme montrant les branches feature1 et feature2 avec des demandes de tirage ciblant main.

À présent, quand vous fusionnez la demande de tirage feature2, elle l’est dans la branche main.

Utilisation de branches protégées

Les administrateurs de dépôts ou les rôles personnalisés avec l’autorisation « modifier les règles de dépôt » peuvent activer les protections sur une branche. Si vous travaillez sur une branche protégée, vous ne pouvez pas supprimer une branche ni forcer une poussée (push) vers la branche. Les administrateurs de dépôt peuvent également activer plusieurs autres paramètres de branche protégée pour appliquer divers workflows avant qu’une branche ne puisse être fusionnée.

Note

Si vous êtes administrateur de dépôt, vous pouvez fusionner des demandes de tirage sur des branches dotées de protections activées même si la demande de tirage ne satisfait pas aux exigences, sauf si les protections de branche ont été définies sur « Inclure les administrateurs »

Pour voir si votre demande de tirage peut être fusionnée, examinez la zone de fusion située au bas de l’onglet Conversation de la demande de tirage. Pour plus d’informations, consultez « À propos des branches protégées ».

Quand une branche est protégée :

  • Vous ne pouvez pas supprimer la branche ni forcer une poussée (push) vers elle.
  • Si des vérifications d’état obligatoires sont activées sur la branche, vous ne pouvez pas fusionner les changements dans la branche tant que tous les tests CI nécessaires ne sont pas réussis. Pour plus d’informations, consultez « À propos des vérifications d’état ».
  • Si des révisions de demande de tirage obligatoires sont activées sur la branche, vous ne pouvez pas fusionner les changements dans la branche tant que toutes les exigences indiquées dans la stratégie de révision des demandes de tirage ne sont pas satisfaites. Pour plus d’informations, consultez « Fusion d’une demande de tirage ».
  • Si une révision obligatoire est activée sur une branche par un propriétaire de code et qu’une demande de tirage modifie du code associé à un propriétaire, un propriétaire de code doit d’abord approuver la demande de tirage pour qu’elle puisse être fusionnée. Pour plus d’informations, consultez « À propos des propriétaires de code ».
  • Si une signature de commit obligatoire est activée sur une branche, vous ne pouvez pas pousser (push) des commits vers la branche s’ils ne sont pas signés ni vérifiés. Pour plus d’informations, consultez « À propos de la vérification des signatures de commit » et « À propos des branches protégées ».
  • Si vous utilisez l’éditeur de conflit de GitHub pour corriger les conflits d’une demande de tirage que vous avez créée à partir d’une branche protégée, GitHub vous aide à créer une autre branche pour la demande de tirage, afin que votre résolution des conflits puisse être fusionnée. Pour plus d’informations, consultez « Résolution d’un conflit de fusion sur GitHub ».

Pour aller plus loin