Systèmes de gestion de versions : Git

TP #5 : Autres commandes utiles

Étiqueter un commit

  • Étiqueter un commit :
    $ git tag v2.5 1b2e1d63ff
  • Quelques exemples :
    $ git diff v2.5 HEAD
    $ git log v2.5..v2.6
    $ git log v2.5..
    $ git log v2.5.. Makefile
    $ git branch stable v2.5
    $ git show v2.5:Makefile

Recherches

  • Rechercher un motif :
    $ git grep "hello"
    $ git grep "hello" v2.5
  • Voir qui a modifié les lignes d'un fichier :
    $ git blame <fichier>
  • Retrouver le commit à l'origine d'un problème (bug) : git bisect
    $ git bisect start                   # démarrer une nouvelle recherche
    $ git bisect bad                     # la version courante n'est pas bonne
    $ git bisect good v2.6.13-rc2        # la version v2.6.13-rc2 était bonne
    # une version intermédiaire est extraite, il faut la tester
    $ git bisect good                    # si la version est bonne
    $ git bisect bad                     # si la version n'est pas bonne
    $ git bisect skip                    # pour tester une autre version
    # recommencer jusqu'à trouver le commit fautif
    $ git bisect reset                   # pour réinitialiser le dépôt à la fin
    En suivant ce lien, vous trouverez un exemple permettant de mettre en pratique cette procédure.

Annuler un commit

Pour annuler un commit problématique, on pourra utiliser :

$ git revert <commit>

NB: le commit fautif n'est pas supprimé, mais un nouveau commit est créé avec les modifications inverses.

Appliquer un commit

Pour appliquer un commit issu d'une autre branche par exemple, on peut utiliser :

$ git cherry-pick <commit>