Systèmes de gestion de versions : Git

TP #4 : Les branches ; désigner un commit

Mettre du travail de côté : git stash

  • Pour mettre temporairement des modifications de côté :
    $ git stash
    $ git stash show
    $ git stash show -p
    $ git stash pop
    $ git stash drop
    $ git stash list

Les branches

  • Créer une branche :
    $ git branch experimental
    
  • Lister les branches :
    $ git branch
      experimental
    * main
    
  • Utiliser les branches :
    $ git checkout experimental
    # éditer des fichiers
    $ git commit -a
    $ git checkout main
    # éditer des fichiers
    $ git commit -a
    
  • Fusionner une branche :
    # en étant sur la branche main...
    $ git merge experimental
    # y a-t-il des conflits ? Si oui, les visualiser avec :
    $ git diff
    # éditer les fichiers pour résoudre les conflits, puis valider avec :
    $ git commit -a
    
  • Visualiser toutes les branches :
    $ gitk --all
    
  • Supprimer une branche :
    $ git branch -d experimental
    $ git branch -D mauvaise-idee

Désigner un commit

  • Voici différentes manières de désigner un commit (cf. gitrevisions(7) pour les détails) :
    $ git show ca6601f...                # identifiant, peut être abrégé
    $ git show experimental              # nom de branche
    $ git show HEAD                      # dernier commit
    $ git show <commit>^                 # parent du commit donné (ex. HEAD^)
    $ git show <commit>^^                # grand-parent du commit
    $ git show <commit>~4                # grand-grand grand-parent du commit
    $ git show <commit>^1                # 1er parent
    $ git show <commit>^2                # 2ème parent (ex. lors d'un merge)