tite fractale

git de survie

Lancer le diaporama

1. git logo de survie


2. Maîtrise du code source

« De tous temps, l’Homme a voulu maîtriser les versions de son code source, tant par rapport au temps qui passe que par rapport à la multiplicité intrinsèque du soi. »

Kevin Perlotin, redoublant de Terminale

3. Le plan du kit

Pourquoi et comment
Les commandes, le dotgit
La config, mais surtout les alias
Les trois arbres
Les références
Modifier l’histoire : attention
Modifier l’histoire : dé-versionner
Modifier l’histoire : les rebase
Bisect


4. Le plan du kit

>>> Pourquoi et comment
Les commandes, le dotgit
La config, mais surtout les alias
Les trois arbres
Les références
Modifier l’histoire : attention
Modifier l’histoire : dé-versionner
Modifier l’histoire : les rebase
Bisect


5. Pourquoi et comment


6. Le plan du kit

>>> Pourquoi et comment
Les commandes, le dotgit
La config, mais surtout les alias
Les trois arbres
Les références
Modifier l’histoire : attention
Modifier l’histoire : dé-versionner
Modifier l’histoire : les rebase
Bisect


7. Le plan du kit

Pourquoi et comment
>>> Les commandes, le dotgit
La config, mais surtout les alias
Les trois arbres
Les références
Modifier l’histoire : attention
Modifier l’histoire : dé-versionner
Modifier l’histoire : les rebase
Bisect


8. Les commandes


9. Le .git


10. Le .git


11. Le plan du kit

Pourquoi et comment
>>> Les commandes, le dotgit
La config, mais surtout les alias
Les trois arbres
Les références
Modifier l’histoire : attention
Modifier l’histoire : dé-versionner
Modifier l’histoire : les rebase
Bisect


12. Le plan du kit

Pourquoi et comment
Les commandes, le dotgit
>>> La config, mais surtout les alias
Les trois arbres
Les références
Modifier l’histoire : attention
Modifier l’histoire : dé-versionner
Modifier l’histoire : les rebase
Bisect


13. Config et aliases


14. Config et aliases

git commit  # Message dans éditeur.
            # Un format normalisé.
git cm      # Pour un message d’une ligne.
git sl      # sl = short log
git s       # s  = show, montre le commit
            #      courant par défaut
git st      # st = status, ne montre
            #      ici que des ajouts:
            #      (`??` bleus).

Rappel : alias git > alias shell.


15. Config et aliases


16. Le plan du kit

Pourquoi et comment
Les commandes, le dotgit
>>> La config, mais surtout les alias
Les trois arbres
Les références
Modifier l’histoire : attention
Modifier l’histoire : dé-versionner
Modifier l’histoire : les rebase
Bisect


17. Le plan du kit

Pourquoi et comment
Les commandes, le dotgit
La config, mais surtout les alias
>>> Les trois arbres
Les références
Modifier l’histoire : attention
Modifier l’histoire : dé-versionner
Modifier l’histoire : les rebase
Bisect


18. Les trois arbres


19. Les trois arbres

Un commit se fait en trois temps :

  1. choix du contenu
    • git add quelque_chose : wcindex
    • On peut même introduire les modifs depuis wc vers index au compte-gouttes :
    • git add --patch (alias git ap)
  2. vérif du contenu
    • git diff --cached (alias git dc) diff entre index et repo.
    • C’est l’état de l’index qui va être commité.
  3. le commit
    • git commit -m (alias git cm) pour mettre le message direct,
    • git commit a tout un tas d’autres options.

20. Les trois arbres

On peut passer du contenu dans l’autre sens.


21. Les trois arbres

À vous ! Un petit commit en trois temps.

  1. Passer la troisième ligne de ./description dans l’index.
    • git add --patch chemin est interactif, la sous-sous-commande ? est utile.
    • git st donne alors deux couleurs à ce fichier, pourquoi ?
  2. Vérifier avec git d et git dc.
  3. Passer cette ligne dans le repo (commiter avec un message au choix).

22. Les trois arbres

Encore un effort :


23. Le plan du kit

Pourquoi et comment
Les commandes, le dotgit
La config, mais surtout les alias
>>> Les trois arbres
Les références
Modifier l’histoire : attention
Modifier l’histoire : dé-versionner
Modifier l’histoire : les rebase
Bisect


24. Le plan du kit

Pourquoi et comment
Les commandes, le dotgit
La config, mais surtout les alias
Les trois arbres
>>> Les références
Modifier l’histoire : attention
Modifier l’histoire : dé-versionner
Modifier l’histoire : les rebase
Bisect


25. Les références


26. Les références


27. Les références


28. Les références

objects examples


29. Les références


30. Les références


31. Les références

Pour ne pas encombrer git status, on ignore les objects.

$ echo objects >> .gitignore

Si plus tard on veut en ajouter,

$ git add objects
The following paths are ignored by one of your .gitignore files:
objects
Use -f if you really want to add them.
fatal: no files added
$ git add objects -f

32. Le plan du kit

Pourquoi et comment
Les commandes, le dotgit
La config, mais surtout les alias
Les trois arbres
>>> Les références
Modifier l’histoire : attention
Modifier l’histoire : dé-versionner
Modifier l’histoire : les rebase
Bisect


33. Le plan du kit

Pourquoi et comment
Les commandes, le dotgit
La config, mais surtout les alias
Les trois arbres
Les références
>>> Modifier l’histoire : attention
Modifier l’histoire : dé-versionner
Modifier l’histoire : les rebase
Bisect


34. Modifier l’histoire : ATTENTION


35. Modifier l’histoire tranquille


36. Le plan du kit

Pourquoi et comment
Les commandes, le dotgit
La config, mais surtout les alias
Les trois arbres
Les références
>>> Modifier l’histoire : attention
Modifier l’histoire : dé-versionner
Modifier l’histoire : les rebase
Bisect


37. Le plan du kit

Pourquoi et comment
Les commandes, le dotgit
La config, mais surtout les alias
Les trois arbres
Les références
Modifier l’histoire : attention
>>> Modifier l’histoire : dé-versionner
Modifier l’histoire : les rebase
Bisect


38. Dé-versionner


39. Dé-versionner


40. Le plan du kit

Pourquoi et comment
Les commandes, le dotgit
La config, mais surtout les alias
Les trois arbres
Les références
Modifier l’histoire : attention
>>> Modifier l’histoire : dé-versionner
Modifier l’histoire : les rebase
Bisect


41. Le plan du kit

Pourquoi et comment
Les commandes, le dotgit
La config, mais surtout les alias
Les trois arbres
Les références
Modifier l’histoire : attention
Modifier l’histoire : dé-versionner
>>> Modifier l’histoire : les rebase
Bisect


42. Les rebase


43. Rebase de branche en branche


44. Rebase de branche en branche


45. Rebase de branche en branche


46. Rebase de branche en branche


47. Rebase sur une même branche

Autre type de rebase, le nettoyage d’une branche.


48. Rebase sur une même branche


49. Rebase sur une même branche

Réinventons nous une histoire avec histoire.sh :

for i in $(seq 1 $1); do;
    echo "# ligne $i" >> test.sh;
    git add test.sh;
    git commit -m "Commit n°$i pour $2.";
done

Script à conserver dans ../histoire.sh, puis à lancer avec sh ../histoire.sh 20 test_rebase.


50. Rebase sur une même branche

Pour contrôler ce qu’il se passe dans logs et refs :

cp HEAD old_HEAD
cp -av logs old_logs
cp -av refs old_refs

51. Rebase sur une même branche

Pour un rebase plus ou moins interactif :


52. Rebase sur une même branche


53. Rebase sur une même branche


54. Le plan du kit

Pourquoi et comment
Les commandes, le dotgit
La config, mais surtout les alias
Les trois arbres
Les références
Modifier l’histoire : attention
Modifier l’histoire : dé-versionner
>>> Modifier l’histoire : les rebase
Bisect


55. Le plan du kit

Pourquoi et comment
Les commandes, le dotgit
La config, mais surtout les alias
Les trois arbres
Les références
Modifier l’histoire : attention
Modifier l’histoire : dé-versionner
Modifier l’histoire : les rebase
>>> Bisect


56. Bisect

sh ../histoire.sh 1000 innocent
echo "exit 1" >> test.sh
git commit -am "Commit coupable."
sh ../histoire.sh 100 innocent
git blame test.sh
git bisect start, bad, good HEAD@{1100}
git bisect run sh test.sh
git bisect reset



Christophe Gragnic, le 03/12/2020, 17h13'04".






Page générée le 27/05/2021, 09h06'59" (source).
historique de la page
historique global