4 points par GN⁺ 2025-01-18 | 1 commentaires | Partager sur WhatsApp
  • Comment résoudre les problèmes Git

    • Git est un outil complexe et propice aux erreurs, et il est souvent difficile de trouver comment résoudre un problème.
    • Le livre explique, en anglais simple, différentes situations problématiques et leurs solutions.
  • Situations problématiques et solutions

    • Quand vous voulez annuler une mauvaise manipulation

      • Utilisez git reflog pour consulter l’historique des actions précédentes, puis revenez au point souhaité avec git reset HEAD@{index}.
    • Quand un petit changement est nécessaire après un commit

      • Après avoir effectué la modification, utilisez git add . puis git commit --amend --no-edit pour ajouter les changements au dernier commit.
      • Attention : ne modifiez pas un commit déjà publié.
    • Quand vous voulez modifier le message du dernier commit

      • Utilisez git commit --amend pour changer le message.
    • Quand vous avez commité sur la mauvaise branche

      • Créez une nouvelle branche, supprimez ensuite le commit de la branche master avec git reset HEAD~ --hard, puis déplacez-vous sur la nouvelle branche pour conserver le commit.
    • Quand la commande diff ne fonctionne pas

      • Utilisez git diff --staged pour voir les différences des fichiers placés en staging.
    • Quand vous voulez annuler un ancien commit

      • Trouvez le commit avec git log, puis annulez-le avec git revert [saved hash].
    • Quand vous voulez annuler les modifications d’un fichier

      • Trouvez un commit précédent avec git log, puis restaurez le fichier avec git checkout [saved hash] -- path/to/file.
  • Autres cas

    • Quand vous voulez remettre le dépôt dans son état initial
      • Utilisez git fetch origin, git checkout master, puis git reset --hard origin/master pour le resynchroniser avec le dépôt distant.
      • Utilisez git clean -d --force pour supprimer les fichiers et répertoires non suivis.
  • Points d’attention

    • Le site précise qu’il ne s’agit pas d’une référence exhaustive et qu’il peut exister plusieurs façons de faire.
    • Il remercie les nombreuses personnes ayant participé à la traduction.

1 commentaires

 
GN⁺ 2025-01-18
Avis Hacker News
  • Il est préférable d’utiliser git switch au lieu de git checkout
  • Proposition d’une méthode pour éviter reset --hard et résoudre le problème quand on a validé sur la mauvaise branche en créant une nouvelle branche
    • Créer une nouvelle branche à partir de l’état actuel
    • Revenir au commit précédent
    • Faire pointer la branche master sur ce commit
    • Repasser sur la branche de travail
  • Proposition d’une méthode avec cherry-pick pour corriger un commit effectué sur la mauvaise branche
    • Basculer sur la bonne branche
    • Récupérer le dernier commit de master
    • Le supprimer de master
  • Proposition d’une méthode d’utilisation de git en situation de « j’abandonne »
    • Récupérer le dernier état de origin
    • Restaurer les fichiers suivis
    • Supprimer les fichiers et répertoires non suivis
    • Réinitialiser master sur la version distante
  • Il serait préférable de recommander par défaut une UI pour apprendre Git
    • Si l’on trouve ensuite que la CLI est plus rapide, on pourra l’utiliser plus tard
    • Il faut d’abord comprendre visuellement comment interagir avec l’arborescence
  • Heureux de voir des résultats de recherche sur hg+mercurial
    • C’est dommage que hg ait perdu la guerre des DVCS
  • Il est difficile de se souvenir des arguments des commandes Git
    • Les commandes ne sont ni faciles à découvrir ni faciles à mémoriser
  • Ce sera étrange de célébrer les 20 ans de git en avril 2025
    • L’effet GitHub a peut-être supprimé le besoin d’un nouveau VCS
  • En situation de « oh shit », on utilise la méthode qui consiste à supprimer le dépôt local puis à cloner à nouveau
    • Cela fonctionne dans 95 % des cas
  • Il est difficile de mémoriser git reflog car on le lit à tort comme « re-flog »
  • Sans être utilisateur de Git, on a l’impression que git commit n’a pas vraiment de sens
    • Un commit ne devient important que lorsqu’il est pushé ou fusionné
  • L’un des avantages de Git est qu’une fois qu’un objet est créé, on ne peut plus perdre son travail
    • Il est important de commit souvent