Aller au contenu

git checkout

Définition

La commande git checkout permet de basculer entre des branches ou de restaurer des fichiers de l'arborescence de travail. Elle agit sur les fichiers, les commits et les branches. La commande git checkout permet de basculer entre plusieurs fonctionnalités au sein d'un seul et même dépôt.

Basculer vers des branches

La commande git checkout fonctionne avec la commande git branch. Elle met à jour les fichiers du répertoire de travail pour qu'ils correspondent à la version stockée dans cette branche, indiquant ainsi à Git d'enregistrer tous les nouveaux commits. La commande git checkout peut être associée à git clone. La commande git clone permet de récupérer le code depuis un dépôt distant, tandis que git checkout permet de basculer entre les versions du code sur le système local.

Basculer vers des branches existantes

Imaginons un dépôt contenant des branches préexistantes. Si vous souhaitez basculer entre ces branches, vous pouvez invoquer git checkout. L'exécution de git branch affichera la liste des branches disponibles ainsi que le nom de la branche actuelle.

git checkout branch

makefile
git branch
master
test_branch
feature_branch
git checkout feature_branch

Basculer vers de nouvelles branches

La commande git branch est exécutée pour créer une nouvelle branche. Cependant, l'argument git checkout -b crée une nouvelle branche et bascule directement vers celle-ci :

git checkout -b

makefile
git checkout -b <new_branch>

Dans l'exemple ci-dessus, le drapeau -b indique à Git d'exécuter git branch &lt;new\_branch&gt; avant d'invoquer git checkout &lt;new\_branch&gt;.

git checkout -b new_branch existing_branch

makefile
git checkout -b <new_branch> <existing_branch>

La commande git checkout -b base la new\_branch sur le HEAD actuel. Dans l'exemple ci-dessus, &lt;existing\_branch&gt; servira de base à new\_branch au lieu du HEAD actuel.

Basculer entre des branches

L'exécution de la commande suivante placera le HEAD au sommet de &lt;branchname&gt; :

la commande git checkout branch

makefile
git checkout <branchname>

La commande git reflog peut être exécutée pour afficher l'historique. Pour en savoir plus, consultez notre page sur git reflog.

Basculer vers des branches distantes

Il est courant d'utiliser des dépôts distants lors d'un travail en équipe. Chaque dépôt distant peut contenir ses propres branches. Afin de basculer vers une branche distante, git fetch doit être exécuté pour en récupérer le contenu :

git checkout remote

makefile
git fetch --all

Les versions modernes de Git permettent de basculer vers une branche distante comme vers une branche locale :

git checkout remote branches

makefile
git checkout <remote_branch>

En revanche, sur les anciennes versions de Git, vous devez créer une nouvelle branche basée sur la branche distante :

git checkout pour les branches distantes

makefile
git checkout <remote_branch> origin/<remote_branch>

Ensuite, basculez vers une nouvelle branche locale et réinitialisez-la sur le dernier commit de la branche distante à l'aide de la commande git reset :

la commande git checkout

makefile
git checkout -b <branchname>
git reset --hard origin/<branchname>

État HEAD détaché

L'état « HEAD détaché » vous permet de basculer vers des commits et d'examiner l'état antérieur du dépôt sans créer de branche locale. La référence HEAD met à jour git checkout pour pointer vers la branche ou le commit spécifié. Aucun problème ne se produira lorsque HEAD pointe vers une branche, mais lorsqu'il pointe vers un commit, il passe à un état « HEAD détaché ».

L'état « HEAD détaché » est un avertissement qui indique que votre activité est « détachée » du développement du projet. Si vous développez une fonctionnalité dans un état « HEAD détaché », aucune branche ne vous permettra d'y revenir. Lorsque vous basculez vers une autre branche, vous ne pouvez plus faire référence à votre fonctionnalité :

git checkout

Le développement doit avoir lieu sur une branche et non dans un état « HEAD détaché », afin de garantir une référence aux nouveaux commits. Cependant, lorsque vous souhaitez consulter un ancien commit, l'état « HEAD détaché » n'a pas vraiment d'importance.

Pratique

Quelles sont les fonctionnalités et caractéristiques de la commande 'git checkout' ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.