Français â–Ÿ Topics â–Ÿ Latest version â–Ÿ git-branch last updated in 2.51.0

NOM

git-branch - Liste, crée, ou supprime des branches

SYNOPSIS

git branch [--color[=<when>] | --no-color] [--show-current]
	   [-v [--abbrev=<n> | --no-abbrev]]
	   [--column[=<options>] | --no-column] [--sort=<clé>]
	   [--merged [<commit>]] [--no-merged) [<commit>]]
	   [--contains [<commit>]] [--no-contains [<commit>]]
	   [--points-at <objet>] [--format=<format>]
	   [(-r | --remotes) | (-a | --all)]
	   [--list] [<motif>
​]
git branch [--track[=(direct|inherit)] | --no-track] [-f]
	   [--recurse-submodules] <nom-de-branche> [<point-de-départ>]
git branch (--set-upstream-to=<amont> | -u <amont>) [<nom-de-branche>]
git branch --unset-upstream [<nom-de-branche>]
git branch (-m | -M) [<ancienne-branche>] <nouvelle-branche>
git branch (-c | -C) [<ancienne-branche>] <nouvelle-branche>
git branch (-d | -D) [-r] <nom-de-branche>
​
git branch --edit-description [<nom-de-branche>]

DESCRIPTION

Si --list est donnĂ©, ou s’il n’y a pas d’arguments sans option, les branches existantes sont listĂ©es ; la branche actuelle sera surlignĂ©e en vert et marquĂ©e d’un astĂ©risque. Toutes les branches extraites dans les arbres de travail liĂ©s seront mis en Ă©vidence en cyan et marquĂ©s d’un signe plus. L’option -r ajoute la liste des branches de suivi Ă  distance et l’option`-a` affiche les branches locales et distantes.

Si un <motif> est donnĂ©, il est utilisĂ© comme joker du shell pour restreindre la sortie aux branches correspondantes. Si plusieurs motifs sont donnĂ©s, une branche est affichĂ©e si elle correspond Ă  l’un des motifs.

Notez que lorsque vous fournissez un <motif> , vous devez utiliser --list ; sinon, la commande peut ĂȘtre interprĂ©tĂ©e comme une crĂ©ation de branche.

Avec --contains, montrer seulement les branches qui contiennent le commit indiquĂ© (en d’autres termes, les branches dont les commits sommets sont des descendants du commit indiquĂ©), avec --no-contains inverser. Avec --merged, seules les branches fusionnĂ©es dans le commit indiquĂ© (c’est-Ă -dire les branches dont les commits sommets sont accessibles depuis le commit indiquĂ©) seront listĂ©es. Avec --no-merged, seules les branches non fusionnĂ©es dans le commit indiquĂ© seront listĂ©es. Si l’argument <commit> est manquant, il prend par dĂ©faut la valeur HEAD (c’est-Ă -dire le sommet de la branche courante).

La deuxiĂšme forme de la commande crĂ©e une nouvelle tĂȘte de branche nommĂ©e <nom-de-branche> qui pointe vers la HEAD actuelle, ou <point-de-dĂ©part> si elle est fournie. Dans un cas particulier, pour le <point-de-dĂ©part>, vous pouvez utiliser <rev-a>...<rev-b> comme raccourci pour la base de fusion de <rev-a> et <rev-b> s’il y a exactement une base de fusion. Vous pouvez omettre tout au plus un des <rev-a> et <rev-b>, auquel cas il s’agit par dĂ©faut de HEAD.

Notez que cela crĂ©era la nouvelle branche, mais ne fera pas passer l’arbre de travail sur celle-ci ; utilisez git switch <nouvelle-branche> pour passer sur la nouvelle branche.

Lorsqu’une branche locale est dĂ©marrĂ©e Ă  partir d’une branche de suivi Ă  distance, Git configure la branche (plus prĂ©cisĂ©ment les entrĂ©es de configuration branch.<nom>.remote et branch.<nom>.merge) de façon Ă  ce que git pull fusionne correctement avec la branche de suivi Ă  distance. Ce comportement peut ĂȘtre modifiĂ© via le drapeau de configuration global branch.autoSetupMerge. Ce paramĂštre peut ĂȘtre modifiĂ© en utilisant les options --track et --no-track, et changĂ© plus tard en utilisant git branch --set-upstream-to.

Avec une option -m ou -M, <ancienne-branche> sera renommĂ©e en <nouvelle-branche>. Si <ancienne-branche> avait un reflog correspondant, il est renommĂ© pour correspondre Ă  <nouvelle-branche>, et une entrĂ©e de reflog est créée pour se souvenir du renommage de la branche. Si <nouvelle-branche> existe dĂ©jĂ , -M doit ĂȘtre utilisĂ© pour forcer le changement de nom.

Les options -c et -C ont exactement la mĂȘme sĂ©mantique que -m et -M, sauf qu’au lieu de renommer la branche,elle sera copiĂ©e sous un nouveau nom avec sa configuration et son reflog.

Avec une option -d ou -D, <nom-de-branche> sera supprimĂ©. Vous pouvez spĂ©cifier plus d’une branche pour la suppression. Si la branche a actuellement un reflog, alors le reflog sera aussi supprimĂ©.

Utilisez -r avec -d pour supprimer les branches de suivi Ă  distance. Notez qu’il est logique de supprimer les branches de suivi Ă  distance uniquement si elles n’existent plus dans le dĂ©pĂŽt distant ou si git fetch a Ă©tĂ© configurĂ© pour ne pas les rĂ©cupĂ©rer Ă  nouveau. Voir aussi la sous-commande prune de git-remote[1] pour une mĂ©thode de nettoyage toutes les branches obsolĂštes de suivi Ă  distance.

OPTIONS

-d
--delete

Supprimer une branche. La branche doit ĂȘtre entiĂšrement fusionnĂ©e dans sa branche amont, ou dans HEAD si aucune branche amont n’a Ă©tĂ© fixĂ©e avec --track ou --set-upstream-to.

-D

Raccourci pour --delete --force.

--create-reflog

CrĂ©er le reflog de la branche. Cela active l’enregistrement de toutes les modifications apportĂ©es Ă  la branche ref, permettant l’utilisation d’expressions sha1 basĂ©es sur la date telles que <nom-de-branche>@\{yesterday}. Notez que dans les dĂ©pĂŽts non-nus, les reflogs sont gĂ©nĂ©ralement activĂ©s par dĂ©faut par l’option de configuration core.logAllRefUpdates. La forme nĂ©gative --no-create-reflog ne fait que remplacer un --create-reflog prĂ©cĂ©dent, mais n’annule pas actuellement le paramĂštre core.logAllRefUpdates.

-f
--force

RĂ©initialiser <branche> Ă  <point-de-dĂ©part>, mĂȘme si <branche> existe dĂ©jĂ . Sans -f, git branch refuse de changer une branche existante. En combinaison avec -d (ou --delete), permettre la suppression de la branche indĂ©pendamment de son statut de fusion, ou si elle pointe mĂȘme sur un commit valide. En combinaison avec -m (ou --move), il est possible de renommer la branche mĂȘme si le nouveau nom de la branche existe dĂ©jĂ , il en va de mĂȘme pour -c (ou --copy).

Notez que git branch -f <branche> [<point-de-dĂ©part>], mĂȘme avec -f, refuse de modifier une branche existante <branche> qui est extraite dans un autre arbre-de-travail liĂ© au mĂȘme dĂ©pĂŽt.

-m
--move

Déplacer/renommer une branche ainsi que sa config et son reflog .

-M

Raccourci pour --move --force.

-c
--copy

Copier une branche, ainsi que sa config et son reflog.

-C

Raccourci pour --copy --force.

--color[=<quand>]

Colorier les branches pour mettre en Ă©vidence les branches actuelles, locales et de suivi Ă  distance. La valeur doit ĂȘtre always (c-Ă -d toujours) (valeur par dĂ©faut), never (c-Ă -d jamais) ou auto.

--no-color

DĂ©sactiver les couleurs des branches, mĂȘme lorsque le fichier de configuration donne la sortie en couleur par dĂ©faut. MĂȘme chose que --color=never.

-i
--ignore-case

Le tri et le filtrage de branches sont non-sensibles Ă  la casse.

--omit-empty

Ne pas afficher de nouvelle ligne aprÚs les refs formatés lorsque le format se développe en chaßne vide.

--column[=<options>]
--no-column

Afficher la liste des branches en colonnes. Voir la variable de configuration column.branch pour la syntaxe des options.--column et --no-column sans options équivalent respectivement à always et never.

Cette option ne s’applique qu’en mode non verbeux.

--sort=<clé>

Trier en fonction de la <clĂ©> donnĂ©e. PrĂ©fixer par - pour trier par ordre dĂ©croissant de la valeur. Vous pouvez utiliser l’option --sort=<clĂ©> plusieurs fois, auquel cas la derniĂšre clĂ© devient la clĂ© primaire. Les clĂ©s supportĂ©es sont les mĂȘmes que celles de git-for-each-ref[1]. L’ordre de tri est par dĂ©faut la valeur configurĂ©e pour la variable branch.sort si elle existe, ou le tri basĂ© sur le nom de rĂ©fĂ©rence complet (y compris le prĂ©fixe refs/...). Cela liste d’abord les HEAD dĂ©tachĂ©es (si prĂ©sentes), puis les branches locales et enfin les branches de suivi Ă  distance. Voir git-config[1].

-r
--remotes

ÉnumĂ©rer ou supprimer (si utilisĂ© avec -d) les branches de suivi Ă  distance. Combiner avec --list pour faire correspondre le(s) motif(s) optionnel(s).

-a
--all

Afficher Ă  la fois les branches de suivi et les branches locales. Combiner avec --list pour faire correspondre un ou des motifs optionnels.

-l
--list

Listes les branches. Avec l’option <pattern>..., par exemple git branch --list maint-*', ne lister que les branches qui correspondent au(x) motif(s).

--show-current

Afficher le nom de la branche actuelle. En Ă©tat de HEAD dĂ©tachĂ©e, rien n’est affichĂ©.

-v
-vv
--verbose

En mode liste, afficher le sha1 et valider le sujet pour chaque tĂȘte, ainsi que la relation avec la branche amont (le cas Ă©chĂ©ant). S’il est donnĂ© deux fois, imprimer le chemin de l’arbre de travail liĂ© (le cas Ă©chĂ©ant) ainsi que le nom de la branche amont (voir aussi git remote show <remote>). Notez que la HEAD de l’arbre de travail actuel n’aura pas son chemin d’accĂšs affichĂ© (il s’agira toujours de votre rĂ©pertoire actuel).

-q
--quiet

Être plus discret lors de la crĂ©ation ou la destruction d’une branche, en supprimant les messages qui ne sont pas des erreurs.

--abbrev=<n>

Dans la liste dĂ©taillĂ©e qui indique le nom de l’objet commit, indiquer le prĂ©fixe le plus court d’au moins <n> chiffres hexadĂ©cimaux, qui renvoie de maniĂšre unique Ă  l’objet. La valeur par dĂ©faut est 7 et peut ĂȘtre remplacĂ©e par l’option de configuration core.abbrev.

--no-abbrev

Afficher les sha1s complets dans la liste des résultats plutÎt que de les abréger.

-t
--track[=(direct|inherit)]

Lors de la crĂ©ation d’une nouvelle branche, configurer les entrĂ©es de configuration branch.<nom>.remote et branch.<nom>.merge pour pour dĂ©finir la configuration du suivi "amont" de la nouvelle branche. Cette configuration indiquera Ă  git de montrer la relation entre les deux branches dans "git status" et "git branch -v". En outre, il rĂšgle git pull sans arguments de tirer depuis l’amont lorsque la nouvelle branche est extraite.

La branche amont exacte est choisie en fonction de l’argument optionnel : -t, --track ou --track=direct signifie utiliser la branche du point de dĂ©part elle-mĂȘme comme amont ; --track=inherit signifie copier la configuration amont de la branche du point de dĂ©part.

La variable de configuration branch.autoSetupMerge spĂ©cifie comment git switch, git checkout et git branch doivent se comporter lorsque ni --track ni --no-track ne sont spĂ©cifiĂ©s :

L’option par dĂ©faut, true, se comporte comme si --track=direct Ă©tait donnĂ© lorsque le point de dĂ©part est une branche de suivi Ă  distance. L’option false se comporte comme si --no-track Ă©tait donnĂ©. always se comporte comme si --track=direct Ă©tait donnĂ©. inherit se comporte comme si --track=inherit Ă©tait donnĂ©. simple se comporte comme si --track=direct Ă©tait donnĂ© uniquement lorsque <point-de-dĂ©part> est une branche de suivi Ă  distance et que la nouvelle branche a le mĂȘme nom que la branche distante.

Voir git-pull[1] et git-config[1] pour des discussions supplémentaires sur la façon dont les options branch.<nom>.remote et branch.<nom>.merge sont utilisées.

--no-track

Ne pas renseigner la configuration « amont Â», mĂȘme si la configuration branch.autoSetupMerge est paramĂ©trĂ©e.

--recurse-submodules

CETTE OPTION EST EXPÉRIMENTALE ! Fait en sorte que la commande courante fasse une rĂ©cursion dans les sous-modules si submodule.propagateBranches est activĂ©. Voir submodule.propagateBranches dans git-config[1]. Actuellement, seule la crĂ©ation de branches est supportĂ©e.

Lorsqu’utilisĂ© dans la crĂ©ation de branche, une nouvelle branche <nom-de-branche> sera créée dans le superprojet et tous les sous-modules au <point-de-dĂ©part> du superprojet. Dans les sous-modules, la branche pointera vers le commit du sous-module au <point-de-dĂ©part> du superprojet, mais les informations de suivi de la branche seront Ă©tablies en fonction des branches et des distants du sous-module, par ex. git branch --recurse-submodules topic origin/main crĂ©era la branche du sous-module "topic" qui pointe vers le commit du sous-module dans le "origin/main" du superprojet, mais suivra le "origin/main" du sous-module.

--set-upstream

Comme cette option avait une syntaxe confuse, elle n’est plus supportĂ©e. Veuillez utiliser --track ou --set-upstream-to Ă  la place.

-u <amont>
--set-upstream-to=<amont>

Configurer les informations de suivi de <nom-de-branche> pour que <amont> soit considĂ©rĂ© comme la branche amont de <nom-de-branche>. Si aucun <nom-de-branche> n’est spĂ©cifiĂ©, alors la branche actuelle est utilisĂ©e par dĂ©faut.

--unset-upstream

Supprimer les informations en amont pour <nom-de-branche>. Si aucune branche n’est spĂ©cifiĂ©e, la branche actuelle est utilisĂ©e par dĂ©faut.

--edit-description

Ouvrir un Ă©diteur et Ă©diter le texte pour expliquer Ă  quoi sert la branche, qui sera utilisĂ©e par diverses autres commandes (par exemple format-patch, pull-request et merge (si activĂ©)). Des explications sur plusieurs lignes peuvent ĂȘtre utilisĂ©es.

--contains [<commit>]

N’indiquer que les branches qui contiennent le commit spĂ©cifiĂ© (HEAD si non spĂ©cifiĂ©). Implique --list.

--no-contains [<commit>]

N’indiquer que les branches qui ne contiennent pas <commit> (HEAD si non spĂ©cifiĂ©). Implique --list.

--merged [<commit>]

N’indiquer que les branches dont les sommets sont accessibles depuis <commit> (HEAD si non spĂ©cifiĂ©). Implique --list.

--no-merged [<commit>]

N’indiquer que les branches dont les sommets ne sont pas accessibles depuis le <commit> (HEAD si non spĂ©cifiĂ©). Implique --list.

--points-at <objet>

N’indiquer que les branches de <objet>.

--format <format>

Une chaĂźne qui interpole %(fieldname) Ă  partir d’une rĂ©fĂ©rence de branche montrĂ©e et l’objet vers lequel elle pointe. <format> est le mĂȘme que celui de git-for-each-ref[1].

<nom-de-branche>

Le nom de la branche à créer ou à supprimer. Le nouveau nom de la branche doit passer tous les contrÎles définis par git-check-ref-format[1]. Certains de ces contrÎles peuvent restreindre les caractÚres autorisés dans un nom de branche.

<point_de_départ>

La nouvelle tĂȘte de branche pointera sur ce commit. Il peut ĂȘtre donnĂ© sous la forme d’un nom de branche, d’un id de commit ou d’une Ă©tiquette. Si cette option est omise, la HEAD actuelle sera utilisĂ©e Ă  la place.

<ancienne-branche>

La nom d’une branche existante. Si cette option est omise, le nom de la branche actuelle sera utilisĂ©e Ă  la place.

<nouvelle-branche>

Le nouveau nom d’une branche existante. Les mĂȘmes restrictions que pour <nom-de-branche> s’appliquent.

CONFIGURATION

Le terme pager.branch n’est respectĂ© que lorsqu’il s’agit d’énumĂ©rer des branches, c’est-Ă -dire lorsque --list est utilisĂ© ou sous-entendu. La valeur par dĂ©faut est d’utiliser un pager. Voir git-config[1].

Tout ce qui se trouve au-dessus de cette ligne dans cette section n’est pas inclus dans la documentation git-config[1]. Le contenu qui suit est le mĂȘme que celui qui s’y trouve :

Warning

Missing fr/config/branch.adoc

See original version for this content.

EXEMPLES

DĂ©marrer le dĂ©veloppement Ă  partir d’une Ă©tiquette connue
$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
$ cd my2.6
$ git branch my2.6.14 v2.6.14   (1)
$ git switch my2.6.14
  1. Cette Ă©tape et la suivante pourraient ĂȘtre combinĂ©es en une seule Ă©tape avec "checkout -b my2.6.14 v2.6.14".

Supprimer une branche inutile
$ git clone git://git.kernel.org/.../git.git my.git
$ cd my.git
$ git branch -d -r origin/todo origin/html origin/man   (1)
$ git branch -D test                                    (2)
  1. Supprimer les branches de suivi à distance "todo", "html" et "man". La prochaine opération git fetch ou git pull les créera à nouveau, à moins que vous ne les configuriez autrement. Voir git-fetch[1].

  2. Supprimer la branche "test" mĂȘme si la branche "master" (ou n’importe quelle branche actuellement extraite) n’a pas tous les commits de la branche test.

Lister les branches d’un distant spĂ©cifique
$ git branch -r -l '<distant>/<motif>'                 (1)
$ git for-each-ref 'refs/remotes/<distant>/<motif>'    (2)
  1. L’utilisation de -a associerait <distant> avec toutes les branches locales dont le prĂ©fixe correspond au motif <distant>.

  2. for-each-ref accepte un large Ă©ventail d’options. Voir git-for-each-ref[1]

Les motifs devront normalement ĂȘtre citĂ©s.

NOTES

Si vous crĂ©ez une branche sur laquelle vous voulez passer immĂ©diatement, il est plus facile d’utiliser la commande git switch avec son option -c pour faire la mĂȘme chose avec une seule commande.

Les options --contains, --no-contains, --merged et --no-merged servent quatre objectifs connexes mais différents :

  • --contains <commit> est utilisĂ© pour trouver toutes les branches qui devront faire l’objet d’une attention particuliĂšre si <commit> devait ĂȘtre rebasĂ© ou modifiĂ©, puisque ces branches contiennent le <commit> spĂ©cifiĂ©.

  • --no-contains <commit> est l’inverse de cela, c’est-Ă -dire les branches qui ne contiennent pas le <commit> spĂ©cifiĂ©.

  • --merged est utilisĂ© pour trouver toutes les branches qui peuvent ĂȘtre supprimĂ©es en toute sĂ©curitĂ©, puisque ces branches sont entiĂšrement contenues par HEAD.

  • --no-merged est utilisĂ© pour trouver les branches qui sont candidates Ă  la fusion avec HEAD, puisque ces branches ne sont pas entiĂšrement contenues par HEAD.

Lorsque vous combinez plusieurs filtres --contains et --no-contains, seules les références qui contiennent au moins un des commits --contains et ne contiennent aucun des commits --no-contains sont affichées.

Lorsque vous combinez plusieurs filtres --merged et --no-merged, seules les références qui sont accessibles depuis au moins un des commits --merged et depuis aucun des commits --no-merged sont affichées.

GIT

Fait partie de la suite git[1]

TRADUCTION

Cette page de manuel a été traduite par Jean-Noël Avila <jn.avila AT free DOT fr> et les membres du projet git-manpages-l10n. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le site https://github.com/jnavila/git-manpages-l10n .