From d24ba94fdb9039f715661189a03a0f1d16fe798f Mon Sep 17 00:00:00 2001 From: Yves Dubromelle Date: Mon, 20 Apr 2020 00:51:51 +0200 Subject: [PATCH] =?UTF-8?q?red=C3=A9coupage=20pour=20la=20partie=20git?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/3-git.adoc | 50 ----------------------- src/4-internals.adoc | 96 ++++++++++++++++++++++++++++++++++++++++++++ src/5-branches.adoc | 6 +++ src/slides.adoc | 6 ++- 4 files changed, 107 insertions(+), 51 deletions(-) create mode 100644 src/4-internals.adoc create mode 100644 src/5-branches.adoc diff --git a/src/3-git.adoc b/src/3-git.adoc index eb088af..2b5a2c2 100644 --- a/src/3-git.adoc +++ b/src/3-git.adoc @@ -74,53 +74,3 @@ Index -> Dépôt: git commit -m "commit initial" === Référence utile https://ndpsoftware.com/git-cheatsheet.html[https://ndpsoftware.com/git-cheatsheet.html] - -== Travailler avec les branches - -=== Git est un graphe - -//[.stretch] -[graphviz,git-graph,svg] ----- -digraph g { - rankdir = LR - node[group=master]; - 1 -> 2 -> 3 -> 4 -> 7 - node[group=branch]; - 2 -> 5 -> 6 - node[group=refs shape=note style=filled fillcolor=yellow]; - edge[arrowhead = none style=dotted] - 7 -> master - 6 -> relecture - master -> HEAD -} ----- - -[.step] -* commit : 0 à n parent(s) + auteur + committer + message + état des fichiers -* "master", "relecture" : branche, référence à un commit -* "HEAD" : référence à la branche ou au commit sur lequel est basé l'espace de travail - -=== Pour la culture - -Allons voir les entrailles du dépôt... - -[.stretch] -[source,shell] ----- -$ cat .git/refs/heads/master -8b3e8234ccad7d9213bb28d1e70351ebeff965c8 # différent pour chacun - -$ git cat-file -p 8b3e8234ccad7d9213bb28d1e70351ebeff965c8 -tree 1ee6881b1653531a8fc24057be0c61d82b8325de -parent b4c8004bffba2d54753f906f5aa146a6d1ff4bef -author Yves Dubromelle 1587331162 +0200 -committer Yves Dubromelle 1587331162 +0200 - -mon super message de commit ----- - -=== Créer une branche - -[.step] -* On veut relire diff --git a/src/4-internals.adoc b/src/4-internals.adoc new file mode 100644 index 0000000..9a17d6f --- /dev/null +++ b/src/4-internals.adoc @@ -0,0 +1,96 @@ +== Les entrailles de Git + +=== Git est un graphe + +//[.stretch] +[graphviz,git-graph,svg] +---- +digraph g { + rankdir = LR + node[group=master]; + 1 -> 2 -> 3 -> 4 -> 7 + node[group=branch]; + 2 -> 5 -> 6 + node[group=refs shape=note style=filled fillcolor=yellow]; + edge[arrowhead = none style=dotted] + 7 -> master + 6 -> relecture + master -> HEAD +} +---- + +[.step] +* commit : 0 à n parent(s) + auteur + committer + message + état des fichiers +* "master", "relecture" : branche, référence à un commit +* "HEAD" : référence à la branche ou au commit sur lequel est basé l'espace de travail + +=== Exploration du graphe + +Que contient la référence master de `super_projet` ? +[source,shell] +---- +$ cat .git/refs/heads/master +8b3e8234ccad7d9213bb28d1e70351ebeff965c8 +---- +Git peut afficher le contenu du blob correspondant au hash, ici le commit référencé par la branche `master` +[source,shell] +---- +$ git cat-file -p 8b3e8234ccad7d9213bb28d1e70351ebeff965c8 +tree 1ee6881b1653531a8fc24057be0c61d82b8325de +parent b4c8004bffba2d54753f906f5aa146a6d1ff4bef +author Yves Dubromelle 1587331162 +0200 +committer Yves Dubromelle 1587331162 +0200 + +greeetings +---- + +=== ! + +Hash du commit parent ? +[source,shell] +---- +$ git cat-file -p b4c8004bffba2d54753f906f5aa146a6d1ff4bef +tree 19babb3bd3373b4b98e6d0a3b03aef4606dac4b6 +author Yves Dubromelle 1587311802 +0200 +committer Yves Dubromelle 1587311802 +0200 + +commit initial +---- +Qu'y a t'il dans tree ? +[source,shell] +---- +$ git cat-file -p 1ee6881b1653531a8fc24057be0c61d82b8325de +100644 blob 28d0af969b32e69a389087d7a267a2ecc05f1350 rapport.md +---- +Contenu de rapport.md ? +[source,shell] +---- +$ git cat-file -p 28d0af969b32e69a389087d7a267a2ecc05f1350 +coucou +---- + +=== ! + +Tous ces blobs référencés par leur hash sha1 sont présents dans .git/objects ! + +[source,shell] +---- +$ tree .git/objects/ +.git/objects/ +├── 19 +│   └── babb3bd3373b4b98e6d0a3b03aef4606dac4b6 +├── 1e +│   └── e6881b1653531a8fc24057be0c61d82b8325de +├── 28 +│   └── d0af969b32e69a389087d7a267a2ecc05f1350 +├── 8b +│   └── 3e8234ccad7d9213bb28d1e70351ebeff965c8 +├── b4 +│   └── c8004bffba2d54753f906f5aa146a6d1ff4bef +├── e6 +│   └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +├── info +└── pack + +8 directories, 6 files +---- diff --git a/src/5-branches.adoc b/src/5-branches.adoc new file mode 100644 index 0000000..7b902da --- /dev/null +++ b/src/5-branches.adoc @@ -0,0 +1,6 @@ +== Travailler avec les branches + +=== Créer une branche + +[.step] +* On veut relire no \ No newline at end of file diff --git a/src/slides.adoc b/src/slides.adoc index 505f95b..c1bda0a 100644 --- a/src/slides.adoc +++ b/src/slides.adoc @@ -13,4 +13,8 @@ include::1-cpold.adoc[] include::2-scm-flavors.adoc[] -include::3-git.adoc[] \ No newline at end of file +include::3-git.adoc[] + +include::4-internals.adoc[] + +include::5-branches.adoc[] \ No newline at end of file