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.52.0
2025-11-17
- 2.51.1 → 2.51.2 no changes
-
2.51.0
2025-08-18
- 2.50.1 no changes
-
2.50.0
2025-06-16
- 2.47.2 → 2.49.1 no changes
-
2.47.1
2024-11-25
- 2.44.1 → 2.47.0 no changes
-
2.44.0
2024-02-23
- 2.43.2 → 2.43.7 no changes
-
2.43.1
2024-02-09
-
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.35.1 → 2.37.7 no changes
-
2.35.0
2022-01-24
- 2.34.1 → 2.34.8 no changes
-
2.34.0
2021-11-15
- 2.30.1 → 2.33.8 no changes
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 no changes
-
2.29.0
2020-10-19
- 2.27.1 → 2.28.1 no changes
-
2.27.0
2020-06-01
- 2.25.1 → 2.26.3 no changes
-
2.25.0
2020-01-13
- 2.23.1 → 2.24.4 no changes
-
2.23.0
2019-08-16
- 2.22.1 → 2.22.5 no changes
-
2.22.0
2019-06-07
- 2.21.1 → 2.21.4 no changes
-
2.21.0
2019-02-24
- 2.19.3 → 2.20.5 no changes
-
2.19.2
2018-11-21
- 2.19.1 no changes
-
2.19.0
2018-09-10
- 2.17.0 → 2.18.5 no changes
-
2.16.6
2019-12-06
- 2.15.4 no changes
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
- 2.11.4 → 2.12.5 no changes
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
- 2.8.6 no changes
-
2.7.6
2017-07-30
- 2.6.7 no changes
-
2.5.6
2017-05-05
-
2.4.12
2017-05-05
- 2.1.4 → 2.3.10 no changes
-
2.0.5
2014-12-17
SYNOPSIS
gitcheckout[-q] [-f] [-m] [<branche>]gitcheckout[-q] [-f] [-m]--detach[<branche>]gitcheckout[-q] [-f] [-m] [--detach] <commit>gitcheckout[-q] [-f] [-m] [[-b|-B|--orphan] <nouvelle-branche>] [<point-de-départ>]gitcheckout<arbre-esque> [--] <spec-de-chemin>…gitcheckout<arbre-esque>--pathspec-from-file=<fichier> [--pathspec-file-nul]gitcheckout[-f|--ours|--theirs|-m|--conflict=<style>] [--] <spec-de-chemin>…gitcheckout[-f|--ours|--theirs|-m|--conflict=<style>]--pathspec-from-file=<fichier> [--pathspec-file-nul]gitcheckout(-p|--patch) [<arbre-esque>] [--] [<spec-de-chemin>…]
DESCRIPTION
git checkout a deux modes principaux :
-
Basculer de branche, avec
gitcheckout<branche> -
Restaurer une autre version d’un fichier, par exemple avec
gitcheckout<commit> <nom-de-fichier> ougitcheckout<nom-de-fichier>
Voir DÉSAMBIGUÏSATION D’ARGUMENT ci-dessous pour la façon dont Git décide lequel utiliser.
-
gitcheckout[<branche>] -
Passage à <branche>. Cela définit la branche actuelle à _ <branche>_ et met à jour les fichiers dans votre répertoire de travail. L’extraction échouera s’il n’y a des changements non validés dans les fichiers où < branche> et votre commit actuel ont un contenu différent. Les changements non validés seront conservés sinon.
Si la <branche> n’est pas trouvée mais qu’il existe une branche de suivi pour un dépôt distant unique (appelé <distant>) avec un nom correspondant et
--no-guessn’est pas spécifié, le traiter comme équivalent à$ git checkout -b <branche> --track <distant>/<branche>
Lancer
gitcheckoutsans spécifier une branche n’a aucun effet sauf pour afficher les informations de suivi pour la branche actuelle. -
gitcheckout-b<nouvelle-branche> [<point-de-départ>] -
Créer une nouvelle branche nommée <nouvelle-branche>, la commencer à <point-de-départ> (par défaut le commit actuel), et basculer sur cette nouvelle branche. Vous pouvez utiliser les options
--trackou--no-trackpour renseigner l’information de suivi amont de cette branche.Cela échouera s’il y a une erreur lors de l’extraction de <nouvelle-branche>, par exemple si extraire le commit _<point-de-départ> écraserait vos changements non validés.
-
gitcheckout-B<nouvelle-branche> [<point-de-départ>] -
La même chose que
-b, sauf que si la branche existe déjà, Git réinitialise <branche> au point de départ au lieu d’échouer. -
gitcheckout--detach[<branche>] -
gitcheckout[--detach] <commit> -
La même chose que
gitcheckout<branche>, sauf que, au lieu de pointerHEADsur la branche, pointeHEADà l’ID de commit. Voir la section HEAD DÉTACHÉE ci-dessous pour plus de détails.Omettre <branche> détache
HEADau sommet de la branche actuelle. -
gitcheckout<arbre-esque> [--] <spéc-de-chemin>... -
gitcheckout<arbre-esque>--pathspec-from-file=<fichier> [--pathspec-file-nul] -
Remplacer les fichiers et/ou les répertoires spécifiés par la version du commit ou de l’arbre donné et les ajouter à l’index (également connu sous le nom de « zone de préparation »).
Par exemple,
gitcheckoutmainfichier.txtremplacerafichier.txtpar sa version dansmain. -
gitcheckout[-f|--ours|--theirs|-m|--conflict=<style>] [--] <spéc-de-chemin>... -
gitcheckout[-f|--ours|--theirs|-m|--conflict=<style>]--pathspec-from-file=<fichier> [--pathspec-file-nul] -
Remplacer les fichiers et/ou les répertoires spécifiés par la version de l’index.
Par exemple, si vous extrayez un commit, puis modifiez
fichier.txt, puis décidez que ces changements étaient une erreur,gitcheckoutfichier.txtva supprimer tout changement non indexé dansfichier.txt.Cela échouera si le fichier a un conflit de fusion et vous n’avez pas encore lancé
gitaddfichier.txt(ou quelque chose d’équivalent) pour le marquer comme résolu. Vous pouvez utiliser-fpour ignorer les fichiers non fusionnés au lieu d’échouer, utiliser--oursou--theirspour les remplacer par la version d’un côté spécifique de la fusion, ou utiliser-mpour les remplacer par le résultat original du conflit de fusion. - git checkout (-p|--patch) [<arbre-esque>] [--] [<spéc. de chemin>...]
-
C’est similaire aux deux modes précédents, mais vous laisse utiliser l’interface interactive pour afficher la sortie « diff » et choisir quelles sections utiliser dans le résultat. Voir plus bas la description de l’option
--patch.
OPTIONS
-
-q -
--quiet -
Silencieux, supprimer les messages d’état.
-
--progress -
--no-progress -
L’état d’avancement est affiché sur la sortie standard d’erreur par défaut quand elle est attachée à un terminal, à moins que
--quietne soit spécifié. Cette bascule active l’état d’avancement même sans être attaché à un terminal, indépendamment de--quiet. -
-f -
--force -
Lors du basculement de branche, continuer même si l’index ou l’arbre de travail sont différents de
HEAD, et même s’il y a des fichiers non-suivis qui bloquent.Ceci peut servir à éliminer des modifications locales ainsi que tous les fichiers ou répertoires non-suivis qui gênent.Lors de l’extraction de chemins depuis l’index, ne pas échouer sur des entrées non fusionnées ; à la place, les entrées non fusionnées sont ignorées.
-
--ours -
--theirs -
Lors de l’extraction de chemins depuis l’index, extraire l’état #2 (
ours, le nôtre) ou #3 (theirs, le leur) pour les chemins non fusionnés.Veuillez noter que pendant
gitrebaseetgitpull--rebase,oursettheirspeuvent sembler échangés ;--oursfournit la version depuis la branche sur laquelle les modifications sont rebasées, tandis que--theirsfournit la version de la branche qui contient le travail rebasé.C’est parce que
rebaseest utilisé dans une approche qui traite l’historique distant comme la référence canonique partagée, et traite le travail sur la branche que vous rebasez comme un travail tiers à intégrer, et vous endossez temporairement le rôle du gardien de l’historique canonique quand vous rebasez. En tant que gardien de l’historique canonique, vous devez voir l’historique distant comme le vôtre (ours, c’est-à-dire « notre historique partagé canonique »), tandis que votre travail sur l’autre branche devient le tiers (theirs, c’est-à-dire « le travail d’un contributeur sur le canonique »). -
-b<nouvelle-branche> -
Créer une nouvelle branche nommée <nouvelle-branche>, la commencer à <point-de-départ> et extraire la branche résultante ; voir git-branch[1] pour plus de détails.
-
-B<nouvelle-branche> -
La même chose que
-b, sauf que si la branche existe déjà, Git réinitialise <branche> au point de départ au lieu d’échouer. -
-t -
--track[=(direct|inherit)] -
À la création d’une nouvelle branche, établir la configuration upstream (branche amont). Voir
--trackdans git-branch[1] pour plus de détails. Par commodité,--tracksans-bimplique la création de la branche.Si aucune option
-bn’est fournie, le nom de la nouvelle branche sera dérivé de la branche de suivi à distance, en regardant la partie locale de la spécification de référence configurée pour le distant correspondant et en enlevant la partie initiale jusqu’au "*". Cela indiquerait d’utiliser le nom «hack» comme branche locale créée à partir deorigin/hack(ouremotes/origin/hack, ou mêmerefs/remotes/origin/hack). Si le nom fourni ne contient pas de barre oblique, ou si le résultat de la dérivation est un nom vide, la dérivation échoue. Vous pouvez spécifier explicitement un nom avec-bdans ce cas. -
--no-track -
Ne pas renseigner la configuration « amont », même si la configuration
branch.autoSetupMergeest true. -
--guess -
--no-guess -
Si la <branche> n’est pas trouvée mais qu’il existe une branche de suivi pour un dépôt distant unique (appelé <distant>) avec un nom correspondant, le traiter comme équivalent à
$ git checkout -b <branche> --track <distant>/<branche>
Si la branche existe dans plus d’un distant et que l’un d’entre eux est la valeur de la variable de configuration
checkout.defaultRemote, celui-ci sera utilisé pour désambiguïser, même si la <branche> n’est pas unique parmi tous les distants. Réglez la variablecheckout.defaultRemote=originpar exemple pour extraire toujours les branches distantes depuis celle-ci si <branche> est ambigüe mais existe sur le distant origin. Voir aussicheckout.defaultRemotedans git-config[1].--guessest le comportement par défaut. Utilisez--no-guesspour le désactiver.Le comportement par défaut peut être défini via la variable de configuration
checkout.guess. -
-l -
Créer le reflog de la nouvelle branche ; voir git-branch[1] pour plus de détails.
-
-d -
--detach -
Plutôt que d’extraire une branche pour travailler dessus, extraire un commit pour l’inspecter et faire des expériences jetables. C’est le comportement par défaut de
gitcheckout<commit> quand <commit> n’est pas un nom de branche. Voir la section « HEAD DÉTACHÉE » plus bas pour plus de détails.