Git Checkout (Français)

Cette page est un examen de la commande git checkout. Il couvrira des exemples d’utilisation et des cas extrêmes. En termes Git, un « checkout » est l’acte de basculer entre différentes versions d’une entité cible. La commande git checkout fonctionne sur trois entités distinctes: les fichiers, les validations et les branches. En plus de la définition de « checkout », l’expression « check out » est couramment utilisée pour impliquer l’acte d’exécuter la commande git checkout. Dans la rubrique Annulation des modifications, nous avons vu comment git checkout peut être utilisé pour afficher les anciens commits. La majorité de ce document se concentrera sur les opérations d’extraction sur les branches.

L’extrait de branches est similaire à l’extraction d’anciens commits et fichiers dans le sens où le répertoire de travail est mis à jour pour correspondre à la branche / révision sélectionnée; cependant, les nouvelles modifications sont enregistrées dans l’historique du projet, c’est-à-dire qu’il ne s’agit pas d’une opération en lecture seule.

Extraction des branches

Le git checkout vous permet de naviguer entre les branches créées par git branch. L’extraction d’une branche met à jour les fichiers dans le répertoire de travail pour qu’ils correspondent à la version stockée dans cette branche, et cela indique à Git d’enregistrer tous les nouveaux commits sur cette branche. Pensez-y comme un moyen de sélectionner la ligne de développement sur laquelle vous travaillez.

Avoir une branche dédiée pour chaque nouvelle fonctionnalité est un changement radical par rapport au flux de travail SVN traditionnel. Cela rend ridiculement facile d’essayer de nouvelles expériences sans craindre de détruire les fonctionnalités existantes, et cela permet de travailler sur de nombreuses fonctionnalités non liées en même temps. De plus, les branches facilitent également plusieurs flux de travail collaboratifs.

La commande git checkout peut parfois être confondue avec git clone. La différence entre les deux commandes est que clone fonctionne pour récupérer le code à partir d’un référentiel distant, sinon checkout fonctionne pour basculer entre les versions de code déjà sur le système local.

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 en utilisant git checkout. Pour savoir quelles branches sont disponibles et quel est le nom actuel de la branche, exécuter git branch.

 

L’exemple ci-dessus montre comment afficher une liste des branches disponibles en exécutant le git branch, et passez à une branche spécifiée, dans ce cas, la feature_inprogress_branch.

Nouvelles branches

Git checkout fonctionne main dans la main avec git branch. La commande git branch peut être utilisé pour créer une nouvelle branche. Lorsque vous souhaitez démarrer une nouvelle fonctionnalité, vous créez une nouvelle branche en utilisant git branch new_branch. Une fois créé, vous pouvez utiliser git checkout new_branch pour basculer vers cette branche. De plus, la commande git checkout accepte un argument -b qui agit comme une méthode pratique qui créera la nouvelle branche et y basculera immédiatement. Vous pouvez travailler sur plusieurs fonctionnalités dans un même référentiel en basculant entre elles avec git checkout.

L’exemple ci-dessus crée et extrait simultanément . L’option -b est un indicateur de commodité qui indique à Git d’exécuter git branch avant d’exécuter git checkout .

Par défaut, git checkout -b basera le new-branch sur le HEAD actuel. Un paramètre de branche supplémentaire facultatif peut être passé à git checkout. Dans l’exemple ci-dessus, est passé, ce qui base new-branch sur existing-branch au lieu de HEAD actuel.

Changer de branche

Changer de branche est une opération simple. L’exécution de ce qui suit pointera HEAD vers la pointe de .

Git suit un historique des opérations d’extraction dans le reflog. Vous pouvez exécuter git reflog pour afficher l’historique.

Git Checkout a Remote Branch

Lors de la collaboration avec une équipe, il est courant d’utiliser remote référentiels. Ces référentiels peuvent être hébergés et partagés ou ils peuvent être la copie locale d’un autre collègue. Chaque référentiel distant contiendra son propre ensemble de branches. Pour extraire une branche distante, vous devez d’abord récupérer le contenu de la branche.

Dans les versions modernes de Git, vous pouvez ensuite récupérer la branche distante comme une branche locale.

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

De plus, vous pouvez extraire une nouvelle branche locale et la réinitialiser au dernier commit des branches distantes.

 

TÊTES Détachées

Maintenant que nous avons vu les trois principales utilisations de git checkout sur les branches, il est important de discuter de la "detached HEAD”. N’oubliez pas que HEAD est la façon dont Git fait référence à l’instantané actuel. En interne, le git checkout met simplement à jour le HEAD pour qu’il pointe vers la branche ou le commit spécifié. Quand il pointe vers une branche, Git ne se plaint pas, mais lorsque vous extrayez un commit, il passe dans un état "detached HEAD”.

Ceci est un avertissement vous indiquant que tout ce que vous faites est « détaché » du reste du développement de votre projet. Si vous devaient commencer à développer une fonctionnalité dans un état détaché de HEAD, il n’y aurait pas de branche vous permettant de revenir en arrière t o il. Lorsque vous extrayez inévitablement une autre branche (par exemple, pour fusionner votre entité), il n’y aurait aucun moyen de référencer votre entité:

Le point est, votre développement doit toujours avoir lieu sur une branche, jamais sur un HEAD détaché. Cela garantit que vous avez toujours une référence à vos nouveaux commits. Cependant, si vous regardez simplement un ancien commit, peu importe que vous soyez dans un état détaché de HEAD ou non.

Résumé

Cette page se concentre sur l’utilisation de la commande git checkout lors du changement de branche. En résumé, git checkout, lorsqu’il est utilisé sur les branches, modifie la cible de la HEAD réf. Il peut être utilisé pour créer des branches, changer de branche et extraire des branches distantes. La commande git checkout est un outil essentiel pour le fonctionnement standard de Git. C’est un équivalent de git merge. Les commandes git checkout et git merge sont des outils essentiels pour activer git workflows.

Write a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *