Skip to main content

Extraction d’un commit dans GitHub Desktop

Vous pouvez utiliser GitHub Desktop pour extraire un précédent commit dans votre référentiel.

À propos de l’extraction d’un commit

L’extraction d’un commit vous permet d’afficher votre référentiel dans un état précédent sans avoir à créer une branche ou à modifier une branche existante. Cela peut être utile lors du débogage, car il vous permet de constater l’existence d’un bogue dans votre référentiel lors d’un précédent commit.

L’extraction d’un commit place votre dépôt dans un état « HEAD détaché ». Dans la terminologie Git , « HEAD » est la référence qui pointe vers les informations, ou le dernier commit, d’une branche nommée dans votre référentiel. Un état « HEAD détaché » signifie que HEAD fait référence à un commit spécifique, mais pas sur une branche nommée dans votre référentiel.

Remarque : les commits effectués dans un état « HEAD détaché » sont perdus lors du basculement entre des branches, car ces commit n’ont pas été effectués sur une branche nommée. Si vous avez besoin de récupérer les commit perdus, consultez « Dépannage ».

Extraction d’un commit

  1. Dans la barre latérale gauche, cliquez sur Histoire.

    Capture d’écran de l’onglet « Historique » dans la barre latérale. Au-dessus d’une liste de validations, le bouton d’onglet, intitulé « Historique » est mis en évidence avec un contour orange.

  2. Cliquez avec le bouton droit sur le commit que vous souhaitez extraire, puis sélectionnez Extraction d’un commit.

    Capture d’écran d’une liste de commits sous l’onglet « Historique ». En regard d’une commit, dans un menu contextuel, l’option « Extraction d’un commit » est mise en surbrillance avec un contour orange.

  3. L’élément Branche actuelle dans la barre de référentiel affiche désormais « HEAD détaché », ainsi que la SHA du commit extrait.

    Capture d’écran de la barre du référentiel. L’élément « Branche actuelle » affiche un état « HEAD détaché » et est mis en surbrillance avec un contour orange.

  4. Pour quitter l’état « HEAD détaché », vous devez basculer entre des branches. Pour plus d’informations, consultez « Gestion des branches dans GitHub Desktop ».

Résolution des problèmes

Vous pouvez récupérer des commits qui ont été effectués dans un état « HEAD détaché » à l’aide de la commande git reflog à partir de la ligne de commande Git. Vous pouvez ouvrir votre référentiel dans la ligne de commande à partir de GitHub Desktop en accédant à la barre de menus, en sélectionnant Référentiel, puis en cliquant sur Ouvrir dans la ligne de commande.

La commande git reflog affiche la production des événements qui se ont eu lieu dans votre référentiel, y compris les commits. Voici un exemple de production de la commande git reflog :

81fa9136f8 (HEAD -> main) HEAD@{0}: checkout: moving from 8bd5e736a27a52a7e36a856b30e6f0582d341aa1 to main
8bd5e736a2 HEAD@{1}: commit: testing out a feature
22fa76c125 HEAD@{2}: checkout: moving from main to 22fa76c1250a2847305b9325752d941dbaa55983

La ligne 8bd5e736a2 HEAD@{1}: commit: testing out a feature est le commit que nous voulons récupérer, car il a été effectué pendant que le référentiel était dans un état « HEAD détaché ». Pour le récupérer, vous pouvez exécuter git cherry-pick 8bd5e736a2 afin d’appliquer le commit à la branche actuelle dans votre référentiel.

Pour aller plus loin