Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.51.1 â 2.52.0 no changes
-
2.51.0
2025-08-18
- 2.50.1 no changes
-
2.50.0
2025-06-16
- 2.44.1 â 2.49.1 no changes
-
2.44.0
2024-02-23
- 2.43.1 â 2.43.7 no changes
-
2.43.0
2023-11-20
- 2.41.1 â 2.42.4 no changes
-
2.41.0
2023-06-01
- 2.40.1 â 2.40.4 no changes
-
2.40.0
2023-03-12
- 2.39.4 â 2.39.5 no changes
-
2.39.3
2023-04-17
- 2.38.1 â 2.39.2 no changes
-
2.38.0
2022-10-02
- 2.37.1 â 2.37.7 no changes
-
2.37.0
2022-06-27
- 2.36.1 â 2.36.6 no changes
-
2.36.0
2022-04-18
- 2.35.1 â 2.35.8 no changes
-
2.35.0
2022-01-24
- 2.34.1 â 2.34.8 no changes
-
2.34.0
2021-11-15
- 2.33.2 â 2.33.8 no changes
-
2.33.1
2021-10-12
- 2.31.1 â 2.33.0 no changes
-
2.31.0
2021-03-15
- 2.30.1 â 2.30.9 no changes
-
2.30.0
2020-12-27
- 2.29.1 â 2.29.3 no changes
-
2.29.0
2020-10-19
- 2.28.1 no changes
-
2.28.0
2020-07-27
- 2.23.1 â 2.27.1 no changes
-
2.23.0
2019-08-16
- 2.22.2 â 2.22.5 no changes
-
2.22.1
2019-08-11
-
2.22.0
2019-06-07
- 2.21.1 â 2.21.4 no changes
-
2.21.0
2019-02-24
- 2.20.1 â 2.20.5 no changes
-
2.20.0
2018-12-09
- 2.19.1 â 2.19.6 no changes
-
2.19.0
2018-09-10
- 2.18.1 â 2.18.5 no changes
-
2.18.0
2018-06-21
- 2.17.0 â 2.17.6 no changes
-
2.16.6
2019-12-06
-
2.15.4
2019-12-06
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
-
2.12.5
2017-09-22
- 2.10.5 â 2.11.4 no changes
-
2.9.5
2017-07-30
- 2.8.6 no changes
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
- 2.5.6 no changes
-
2.4.12
2017-05-05
- 2.1.4 â 2.3.10 no changes
-
2.0.5
2014-12-17
SYNOPSIS
gitbranch[--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>âŠâ]gitbranch[--track[=(direct|inherit)] |--no-track] [-f] [--recurse-submodules] <nom-de-branche> [<point-de-dĂ©part>]gitbranch(--set-upstream-to=<amont> |-u<amont>) [<nom-de-branche>]gitbranch--unset-upstream[<nom-de-branche>]gitbranch(-m|-M) [<ancienne-branche>] <nouvelle-branche>gitbranch(-c|-C) [<ancienne-branche>] <nouvelle-branche>gitbranch(-d|-D) [-r] <nom-de-branche>âŠâgitbranch--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
HEADsi aucune branche amont nâa Ă©tĂ© fixĂ©e avec--trackou--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-reflogne fait que remplacer un--create-reflogprĂ©cĂ©dent, mais nâannule pas actuellement le paramĂštrecore.logAllRefUpdates. -
-f -
--force -
RĂ©initialiser <branche> Ă <point-de-dĂ©part>, mĂȘme si <branche> existe dĂ©jĂ . Sans
-f,gitbranchrefuse 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
gitbranch-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) ouauto. -
--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.branchpour la syntaxe des options.--columnet--no-columnsans options Ă©quivalent respectivement Ăalwaysetnever.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 variablebranch.sortsi elle existe, ou le tri basĂ© sur le nom de rĂ©fĂ©rence complet (y compris le prĂ©fixerefs/...). Cela liste dâabord lesHEADdĂ©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--listpour faire correspondre le(s) motif(s) optionnel(s). -
-a -
--all -
Afficher Ă la fois les branches de suivi et les branches locales. Combiner avec
--listpour faire correspondre un ou des motifs optionnels. -
-l -
--list -
Listes les branches. Avec lâoption <pattern>..., par exemple
gitbranch--listmaint-*', ne lister que les branches qui correspondent au(x) motif(s). -
--show-current -
Afficher le nom de la branche actuelle. En état de
HEADdĂ©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
gitremoteshow<remote>). Notez que laHEADde 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>.remoteetbranch.<nom>.mergepour 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Ăšglegitpullsans 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,--trackou--track=directsignifie utiliser la branche du point de dĂ©part elle-mĂȘme comme amont ;--track=inheritsignifie copier la configuration amont de la branche du point de dĂ©part.La variable de configuration
branch.autoSetupMergespĂ©cifie commentgitswitch,gitcheckoutetgitbranchdoivent se comporter lorsque ni--trackni--no-trackne 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âoptionfalsese comporte comme si--no-trackĂ©tait donnĂ©.alwaysse comporte comme si--track=directĂ©tait donnĂ©.inheritse comporte comme si--track=inheritĂ©tait donnĂ©.simplese 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>.remoteetbranch.<nom>.mergesont utilisées. -
--no-track -
Ne pas renseigner la configuration « amont », mĂȘme si la configuration
branch.autoSetupMergeest 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.propagateBranchesest activĂ©. Voirsubmodule.propagateBranchesdans 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.
gitbranch--recurse-submodulestopicorigin/maincré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
--trackou--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-requestetmerge(si activĂ©)). Des explications sur plusieurs lignes peuvent ĂȘtre utilisĂ©es. -
--contains[<commit>] -
Nâindiquer que les branches qui contiennent le commit spĂ©cifiĂ© (
HEADsi non spécifié). Implique--list. -
--no-contains[<commit>] -
Nâindiquer que les branches qui ne contiennent pas <commit> (
HEADsi non spécifié). Implique--list. -
--merged[<commit>] -
Nâindiquer que les branches dont les sommets sont accessibles depuis <commit> (
HEADsi non spécifié). Implique--list. -
--no-merged[<commit>] -
Nâindiquer que les branches dont les sommets ne sont pas accessibles depuis le <commit> (
HEADsi 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
HEADactuelle 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 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
-
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)
-
Supprimer les branches de suivi à distance "todo", "html" et "man". La prochaine opération
gitfetchougitpullles créera à nouveau, à moins que vous ne les configuriez autrement. Voir git-fetch[1]. -
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)
-
Lâutilisation de
-aassocierait <distant> avec toutes les branches locales dont le préfixe correspond au motif <distant>. -
for-each-refaccepte 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Ă©. -
--mergedest utilisĂ© pour trouver toutes les branches qui peuvent ĂȘtre supprimĂ©es en toute sĂ©curitĂ©, puisque ces branches sont entiĂšrement contenues parHEAD. -
--no-mergedest utilisé pour trouver les branches qui sont candidates à la fusion avecHEAD, puisque ces branches ne sont pas entiÚrement contenues parHEAD.
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.
VOIR AUSSI
git-check-ref-format[1], git-fetch[1], git-remote[1], «âŻComprendre lâhistorique : Quâest-ce quâune brancheâŻ?'âŻÂ» dans le manuel dâutilisateur Git.
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 .