Git Checkout | Atlassian Git Tutorial

Close Afficher cette page dans votre langue ? Toutes les langues Sélectionner votre langue
  • 中文
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • 한국어
  • Nederlands
  • 日本語
  • Português
  • Pусский
  • Polski
Découvrez Git Présentation Commandes Git Découvrir Git avec Bitbucket Cloud Découvrir la revue du code dans Bitbucket Cloud Découvrez le branching avec Bitbucket Cloud Découvrez comment annuler des changements avec Bitbucket Cloud Débutant Présentation Qu'est-ce que le contrôle de version ? Gestion du code source Qu'est-ce que Git ? Pourquoi Git pour votre entreprise ? Installation de Git SSH Git Commande git archive GitOps Fiche de révision sur Git Introduction Présentation Créer un dépôt Présentation git init git clone git config git alias Enregistrer des changements (Git add) Présentation git commit git diff Git Stash .gitignore Inspecter un dépôt Présentation git tag git blame Annuler des changements Présentation git clean Git revert git reset git rm Réécrire l'historique Présentation Git rebase git reflog Utiliser des workflows de collaboration Présentation Synchroniser (git remote) Présentation git fetch git push git pull Faire une pull request Utiliser des branches (git branch) Présentation Git checkout git merge Fusionnez les conflits Stratégies de merge Comparaison de workflows Présentation Workflow de branche par fonctionnalité Workflow Gitflow Workflow de duplication (fork) Migrer vers Git Présentation De SVN à Git – Préparation de la migration Migrer de SVN vers Git Présentation Préparer Convertir Synchroniser Partagez Migrer De Perforce vers Git – Pourquoi migrer ? Migration de Perforce vers Git Travailler avec Git et Perforce : workflow d'intégration Comment déplacer un dépôt Git avec un historique Conseils avancés Présentation Comparaison entre un merge et un rebase Reset, checkout et revert Commande git log avancée Hooks Git Réfs et Reflog Sous-modules Git Git subtree Grands dépôts dans Git Stockage de fichiers volumineux Git (LFS) git gc Git prune Git bash Comment stocker des dotfiles Git cherry-pick GitK Git-show Articles Présentation Traiter les dépendances Maven lors de la migration vers Git Maîtrise des pull requests : exploitez pleinement vos capacités de récupération ! Git et dépendances de projet Git ou SVN ? Comment Nuance Healthcare a opté pour un modèle de branching Git. Upstreams et forks git : guide pratique et astuce sympa Concept de base, workflows et conseils Git checkout

Cette page traite de la commande git checkout. Différents cas d'usage et de figure seront abordés. Dans la terminologie Git, un « checkout » désigne un basculement entre différentes versions d'une entité cible. La commande git checkout agit sur trois entités distinctes : les fichiers, les commits et les branches. Outre la définition de « checkout », l'expression « checking out » est couramment utilisée pour indiquer l'exécution de la commande git checkout. Dans la rubrique Annuler des changements, nous avons vu comment la commande git checkout peut être utilisée pour afficher d'anciens commits. La majeure partie de ce document portera sur les opérations de checkout sur les branches.

Faire un checkout des branches est similaire à faire un checkout d'anciens commits et d'anciens fichiers dans la mesure où le répertoire de travail est mis à jour pour correspondre à la branche/révision sélectionnée ; cependant, les nouveaux changements sont enregistrés dans l'historique du projet, c'est-à-dire que ce n'est pas une opération en lecture seule.

Checkout de branches

La commande git checkout vous permet de basculer entre les branches créées au moyen de git branch. Le check-out d'une branche entraîne une mise à jour des fichiers contenus dans le répertoire de travail, qui s'alignent sur la version stockée dans cette branche. En outre, Git reçoit l'ordre d'enregistrer tous les nouveaux commits sur cette branche. Considérez cette opération comme une manière de sélectionner la ligne de développement sur laquelle vous travaillez.

Disposer d'une branche dédiée à chaque nouvelle fonctionnalité est un changement radical par rapport au workflow SVN classique. Il vous permet d'essayer facilement de nouvelles choses sans craindre de détruire les fonctionnalités existantes. Vous pouvez également travailler sur de nombreuses fonctionnalités en même temps. De plus, les branches simplifient également certains workflows de collaboration.

La commande git checkout peut parfois être confondue avec la commande git clone. La différence entre les deux commandes est que git clone fait un fetch du code à partir d'un dépôt distant, tandis que git checkout permet de basculer entre les versions de code déjà présentes sur le système local.

Fenêtre de console
Ressource connexe

Commande git log avancée

Lire l'article Logo Bitbucket
DÉCOUVRIR LA SOLUTION

Découvrir Git avec Bitbucket Cloud

Lire le tutoriel

Utilisation : branches existantes

En supposant que le dépôt dans lequel vous travaillez contient des branches préexistantes, vous pouvez basculer entre ces branches avec la commande git checkout. Pour déterminer quelles branches sont disponibles et quel est le nom de la branche en cours, exécutez git branch.

$> git branch main another_branch feature_inprogress_branch $> git checkout feature_inprogress_branch

L'exemple ci-dessus montre comment afficher une liste de branches disponibles en exécutant la commande git branch et passer à une branche spécifique, dans le cas présent, feature_inprogress_branch.

Nouvelles branches

git checkout fonctionne de concert avec git branch. La commande git branch peut être utilisée pour créer une branche. Lorsque vous voulez démarrer une nouvelle fonctionnalité, vous créez une branche hors main à l'aide de la commande git branch nouvelle_branche. Une fois la branche créée, vous pouvez ensuite utiliser git checkout nouvelle_branche pour basculer vers cette branche. De plus, la commande git checkout accepte un argument -b qui agit comme une méthode pratique pour créer la branche et basculer vers elle immédiatement. Vous pouvez travailler sur plusieurs fonctionnalités dans un seul dépôt en basculant entre les branches grâce à git checkout.

git checkout -b <new-branch>

L'exemple ci-dessus crée et extrait simultanément la branche <new-branch>. L'option -b est un flag de commodité qui ordonne à Git d'exécuter la commande git branch avant git checkout .

git checkout -b <new-branch> <existing-branch>

Par défaut, git checkout -b basera la branche new-branch hors du HEAD actuel. Un paramètre de branche supplémentaire facultatif peut être transmis à git checkout. Dans l'exemple ci-dessus, la branche <existing-branch> est transmise. La branche new-branch est alors basée sur existing-branch et non sur le HEAD actuel.

Basculement entre branches

La navigation entre les branches est une opération directe. Exécutez la commande suivante pour placer HEAD sur la pointe de <branchname>.

git checkout <branchname>

Git suit un historique des opérations « checkout » dans le reflog. Vous pouvez exécuter git reflog pour afficher l'historique.

Commande git checkout sur une branche distante

Lorsque vous collaborez avec une équipe, il est courant d'utiliser des dépôts distants. Ces dépôts peuvent être hébergés et partagés, ou ils peuvent être la copie locale d'un autre collègue. Chaque dépôt distant contiendra son propre ensemble de branches. Pour faire le checkout d'une branche distante, vous devez d'abord faire un fetch du contenu de cette branche.

git fetch --all

Dans les versions modernes de Git, vous pouvez ensuite effectuer un checkout de la branche distante comme une branche locale.

git checkout <remotebranch>

Les anciennes versions de Git nécessitent la création d'une nouvelle branche basée sur la remote.

git checkout -b <remotebranch> origin/<remotebranch>

De plus, vous pouvez faire le checkout d'une nouvelle branche locale et la réinitialiser au dernier commit des branches distantes.

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

HEAD détachée

Maintenant que nous connaissons les trois utilisations principales de git checkout sur les branches, il est essentiel de discuter de l'état « HEAD détachée ». Rappelez-vous que Git utilise HEAD pour faire référence à l'instantané actuel. En interne, la commande git checkout met simplement à jour l'élément HEAD sur le point du commit ou de la branche spécifié. Lorsqu'il pointe vers une branche, Git ne se plaint pas, mais quand vous extrayez un commit, il bascule à l'état « HEAD détachée ».

Ce signal vous avertit que toutes les opérations que vous effectuez sont isolées du reste de votre projet. Si vous commencez à développer une fonctionnalité à l'état « HEAD détaché », vous ne pourrez pas y revenir grâce à une branche. Si vous extrayez une autre branche (p. ex. pour y merger votre fonctionnalité), il ne vous sera pas possible de la référencer :

Tête jointe et tête dissociée

En principe, vous devriez toujours travailler sur une branche, jamais sur un HEAD détaché. Par conséquent, vos nouveaux commits sont automatiquement référencés. Cependant, si vous vous contentez d'examiner un ancien commit, peu importe si vous êtes passé à l'état « HEAD détaché » ou non.

Résumé

Cette page se concentre sur l'utilisation de la commande git checkout lorsque vous modifiez des branches. En résumé, lorsque la commande git checkout est utilisée sur des branches, elle modifie la cible de la réf HEAD. Elle peut être utilisée pour créer des branches, changer de branche et faire un check-out de branches distantes. La commande git checkout est un outil essentiel pour le fonctionnement standard de Git. C'est l'équivalent de git merge. Les commandes git checkout et git merge sont des outils essentiels pour faciliter les workflows Git.

Partager cet article
Thème suivant
git merge

Lectures recommandées

Ajoutez ces ressources à vos favoris pour en savoir plus sur les types d'équipes DevOps, ou pour les mises à jour continues de DevOps chez Atlassian.

Des personnes qui collaborent à l'aide d'un mur rempli d'outils

Le blog Bitbucket

En savoir plus Illustration DevOps

Parcours de formation DevOps

En savoir plus Démos Des démos avec des partenaires d'Atlassian

Fonctionnement de Bitbucket Cloud avec Atlassian Open DevOps

Visionner maintenant

Inscrivez-vous à notre newsletter DevOps

Adresse e-mail

Thank you for signing up

Tag » Add Branch Git