Informatique, Web et Multimédia - Master Didactique des langues - Parcours DILIPEM - Université Grenoble Alpes

La page est créée Patrice Perrin
 
CONTINUER À LIRE
Informatique, Web et Multimédia - Master Didactique des langues - Parcours DILIPEM - Université Grenoble Alpes
Informatique, Web et Multimédia
                           TD

                    Mathieu Loiseau

Master Didactique des langues — Parcours DILIPEM
               Université Grenoble-Alpes

               Année universitaire 2019-2020
Informatique, Web et Multimédia - Master Didactique des langues - Parcours DILIPEM - Université Grenoble Alpes
Table des matières

1 Codage de l’information numérique — mise en situation                                              3
   1   Les marchands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      4
   2   Les évadés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     6

2 Fonctionnalités de base de Git                                                                     10
   1   Débuter avec git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    10
   2   Créer un dossier un dépôt Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     11
   3   Effectuer un “commit” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       12
   4   Gérer des branches    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   13

                                                 2
Informatique, Web et Multimédia - Master Didactique des langues - Parcours DILIPEM - Université Grenoble Alpes
TD n◦ 1

Codage de l’information numérique
— mise en situation

Ce TD est inspiré d’un jeu de rôle de Jean-Philippe Pernin 1 .
« On a coutume de dire que la vie est dure. . . » et vous l’avez appris à vos dépends, en cette soirée
d’été, quand les forces de l’ordre ont débarqué dans ce parc où vous faisiez rôtir vos côtelettes ; quand
ils ont fondu sur vous bousculant votre famille et vos amis pour vous encercler. La violence de cette
intervention a vite cédé sa place au tourbillon de la justice, vous avez été ballotté de salle d’audience
en salle d’audience, ne cessant jamais de clamer votre innocence. Et rapidement, ce tourbillon a cédé
sa place aux vertiges des affres de l’enfer carcéral.
Depuis que l’autre grand con de Ferreiro s’est esclaffé « mais on est tous innocents, ici, gamin. . . pas
vrais, les gars ? », vous vous êtes résigné. . . Et vous avez commencé à vous chercher une place dans
cet environnement hostile qui vous servira de foyer pour les 10 prochaines années. . . Vos expériences
estivales traumatiques (enfin pas si traumatiques que ça, à la lumière des récents événements) dans ce
resto crasseux de St Trop’ vous auront au moins amené ça : une affectation dans ce centre névralgique
de la vie pénitentiaire que sont les cuisines.
Depuis que vous avez accès aux flans en sachet, tartelettes aux fruits au sirop et Paris-Brest cartonneux
des réserves, Ferreiro et ses gorilles vous effraient moins. Ils vous semblent même humains à négocier
à prix d’or un peu de rabiot : vos délices frelatés contre quelques taffes de liberté nicotinique. . .
Le problème c’est que Ferreiro ne vous a pas attendu pour se faire remarquer et dès lors que vous portez
votre tablier, vous ne pouvez pas discuter avec lui sans qu’un maton ne vienne tendre l’oreille. . . or
c’est quand vous êtes en cuisine que vous avez connaissance des stocks et pas avant. C’est insoluble. . .
Quoi que. . . Pendant votre temps à la bibliothèque vous avez trouvé un vieux jeu de morpion. Alors
oui, comme tout dans ces geôles, on ne peut pas dire que l’objet soit fonctionnel (cf. figure 1.1) :
quel imbécile a pu croire que le jeu consistait à séparer les croix des ronds ? Et après son opération
de tri méthodique, il a fait quoi de l’autre boite, il l’a mangée ? À défaut de recréer les conditions de
parties endiablées, les pions aimantés, le fait que personne d’autre que vous ne voudra l’emprunter et
l’insignifiance de ce petit jeu aux yeux des gardiens en font l’outil de communication idéal. . .
   1. http://www.jeanphilippepernin.net/ressources/1.%20technologie%20informatique/exercices/
JeuPrisonnier.pdf

                                                   3
Informatique, Web et Multimédia - Master Didactique des langues - Parcours DILIPEM - Université Grenoble Alpes
Master Didactique des langues — Parcours DILIPEM
4                                    Informatique, Web et Multimédia        Université Grenoble-Alpes

               Figure 1.1 – Moyen de communication présumé — pièce à conviction n◦ 1

1      Les marchands
Un matin d’automne, lors d’une promenade dans la cour où le vent a décidé de vous rappeler que le
monde extérieur continuait d’exister en déposant quelques feuilles de platane sur votre chemin, vous
devisez avec Ferreiro des modalités de votre communication. Chaque jour à 9h, vous irez aux toilettes
et déposerez la boite métallique derrière le siphon du 3e lavabo en partant de la fenêtre. La boite
contiendra les informations suivantes :
    — Sur les trois types de gâteaux 2 il vous faut indiquer lesquels seront disponibles ;
    — Indiquer à quelle heure (ou plutôt quart d’heure) lui ou l’un de ses collègues pourra récupérer
       la marchandise (12h00, 12h15, 12h30, 12h45, 13h00, 13h15, 13h30, 13h45) ;
    — Enfin parmi les 4 portes de la cuisine (N,S,E,O) seule une sera accessible pour la personne qui
       viendra récupérer la nourriture.

        1. Définissez un code permettant d’expliquer la situation à votre collègue. cf. fig. 1.2 ou
            fig. 1.3 pour une solution plus originale.

En retour, Ferreiro vous dira combien de chaque type de gâteau il vous faudra mettre de côté. Vous
irez récupérer l’information derrière le siphon pendant votre pose de 11h30. 9 gâteaux peuvent partir
sans attirer les soupçons. . .
        2. Trouver un code qui permette d’indiquer pour chaque type de gâteau s’il faut en réserver
            0, 1, 2 ou 3.
        3. En fait, s’il n’y a qu’un type de gâteau on peut en subtiliser tranquillement 9, si deux
            types de gâteaux sont disponibles vous devrez vous contenter au maximum de 5 d’un
    2. cf. 3e paragraphe.
Informatique, Web et Multimédia - Master Didactique des langues - Parcours DILIPEM - Université Grenoble Alpes
TD n◦ 1. Codage de l’information numérique — mise en situation (1. Les marchands)                      5

                                Flan          Tartelette          Paris-Brest
                                 O → oui       O → oui             O → oui
                                 Ø → non       Ø → non             Ø → non

                                           Additionner les ½ heure et les ¼ d'heures

                                Heure                             Quarts
                                 Ø → 12h    Demi-heures
                                                                  d'heure
                                 O → 13h     Ø → 0 min
                                                                   Ø → 0 min
                                             O → 30 min
                                                                   O → 15 min

                                                      Porte
                                                       ØØ → Nord
                                                       ØO → Sud
                                                       OØ → Est
                                                       OO → Ouest

                               Figure 1.2 – Réponse à la question 1

    Figure 1.3 – Réponse plus originale à la question 1 (mais plus difficile à mettre en œuvre)

         type et 4 de l’autre, enfin si les trois types sont représentés vous ne pourrez en délester
         que 3 de chaque au maximum.

      4. Trouver un code qui permette à Ferreiro de désigner le prochain coursier, parmi 6 co-
         détenus préalablement identifiés (Ferreiro, Charrière, Dantès, Dufresne, McMurphy et
         Scoffield).

En cas de problème, Ferreiro doit pouvoir vous dire d’annuler l’opération.
      5. Complétez un code lui permettant de vous répondre. cf. fig. 1.4 ou fig. 1.5 pour une
         solution plus originale.
Master Didactique des langues — Parcours DILIPEM
6                                  Informatique, Web et Multimédia        Université Grenoble-Alpes

                              Si une seule sorte de gâteaux, seules les 4 premières
                              cases sont utilisées :
                              ØØØØ → 0, ØØØO → 1, ØØOØ → 2, ØØOO → 3,
                              ØOØØ → 4, ØOØO → 5, ØOOØ → 6, ØOOO → 7,
                              OØØØ → 8, OØØO → 9
                              Si deux sortes de gâteaux la première sorte sera sur la
                              première ligne et la seconde sur la seconde :
                              ØØØ → 0, ØØO → 1, ØOØ → 2, ØOO → 3,
                              OØØ → 4, OØO → 5
                              Si trois sortes de gâteaux sont disponibles chaque
                              colonne désigne une variété de gâteau (cf. message
                              entrant)
                              ØØ → 0 OØ → 2
                              ØO → 1 OO → 3

                                Livreur
                                 ØØØ → Charrière OØØ → Scoffield
                                 ØØO → Dantès    OØO → Ferreiro
                                 ØOØ → Dufresne
                                 ØOO → McMurphy OOO → Annuler tout

                              Figure 1.4 – Réponse aux questions 2 à 5

    Figure 1.5 – Réponse plus originale aux questions 2 à 5 (mais plus difficile à mettre en œuvre)

2      Les évadés
De l’eau a coulé sous les ponts. Votre petit commerce tourne à plein régime depuis une bonne année
et une opportunité s’offre à vous. . . Pour faire de la place dans l’atelier, les outils ont été déplacés
TD n◦ 1. Codage de l’information numérique — mise en situation (2. Les évadés)                             7

dans la cabane située juste derrière. Et celle-ci est attenante à l’enceinte de la prison, située au fond
d’un placard. Vous vous voyez déjà ouvrir la porte du placard et vous engouffrer dans le tunnel que
vous y aurez creusé. Ferreiro n’aura aucun problème à prendre le contrôle de l’appenti : n’importe
lequel de ses gorille dissuadera sans problème les autres détenus récupérer eux-mêmes leurs outils.
En plus, cela ne paraitra même pas spécialement louche. Prendre le contrôle de chaque recoin de la
prison, c’est un peu le sport officiel ici : c’est étrange comme le seul ersatz de liberté disponible entre
ces murs semble être de limiter celle des autres. . .
Les heures d’atelier se terminent à horaire fixe et les gardiens sont focalisés sur la vérification qu’aucun
détenu ne sort sans ramener ses outils à la cabane, laissant aisément le creuseur et la sentinelle se
mêler au flux de détenus quittant l’atelier. En revanche, c’est atteindre la cabane sans être repéré qui
est compliqué. Les gardiens se relaient à l’entrée de l’atelier d’où ils voient ils voient l’intégralité du
trajet atelier → cabane (cf. “·” et champ de vision rouge dans la figure 1.6 — poste de surveillance).
S’il est possible de profiter d’un instant d’inattention pour commencer le trajet, personne ne peut
arriver jusqu’à la cabane sans être aperçu. Quoi que. . .

                        Figure 1.6 – Tour de garde (Pièce à conviction n◦ 2b )

Avec votre mousse de lait assez dense pour soutenir les fins copeaux de chocolat dont vous saupoudrez
vos œuvres, vous avez fait naître chez les gardiens une passion pour le petit cappuccino post-prandial.
En plus, de la cuisine, ils voient la porte de l’atelier, ça leur semble suffisant. Mais ils ne voient pas la
cabane (cf. champ de vision vert dans la figure 1.6) et il n’est pas rare qu’ils contemplent le produit
de votre talent de barista avant de s’en imbiber la moustache.
Tout serait parfait. . . si le lait était monnaie courante. Mais l’approvisionnement laisse à désirer et
sa conservation n’est pas aisée. À chaque livraison vous en mettez une bouteille de côté dédiée
aux cappuccini de ces messieurs, ce qui assure environ 3 jours de creusage intensif. Mais quelques
Master Didactique des langues — Parcours DILIPEM
8                                                                       Informatique, Web et Multimédia        Université Grenoble-Alpes

problèmes restent à régler :
   — vous apprenez le contenu des livraisons au mieux 5 jours à l’avance. De plus, se faire ou-
       blier n’est pas si simple pour vos comparses, cela demande 2 jours de préparation au moins.
       Prévenez-les du jour du début des travaux dès que vous êtes au courant (moins de 2 jours à
       l’avance et ce n’est même pas la peine d’essayer de mettre en place le chantier) ;
   — les gardiens qui surveillent l’atelier ont chacun leurs bêtes noires. S’ils aperçoivent dans le
       flux de prisonniers un détenu qu’ils ont à l’œil et qu’ils n’auraient pas vue sortir de l’atelier,
       c’est la catastrophe. C’est vous qui allez faire les équipes de 2 en fonction des affectations des
       gardiens (chaque jour de l’opération). Un jour donné, il est possible que seule une personne
       puisse creuser (voire aucune) ;
   — le travail dans la cuisine vous interdit parfois de vous libérer pour le cappuccino ;
   — la promesse d’une libération n’arrête pas le commerce (ne serait-ce que pour que le reste de
       la prison ne soit pas au courant que vous fomentez quelque chose) ;

           6. Définissez un code qui vous permette d’indiquer toutes les informations relatives au creu-
                    sage (date de début, équipe de creusage quotidienne, abandon de l’opération), tout en
                    maintenant les échanges commerciaux le reste du temps. Plusieurs stratégies peuvent
                    être mises en œuvre, celles-ci seront plus ou moins économes en combinatoire. cf. fig. 1.7
                    et 1.8.

        Flan                   Tartelette          Paris-Brest
         O → oui                O → oui             O → oui
         Ø → non                Ø → non             Ø → non

                            Additionner les ½ heure et les ¼ d'heures

        Heure                                      Quarts                                                    Si
         Ø → 12h            Demi-heures
                                                   d'heure                                                   planification
         O → 13h             Ø → 0 min
                                                    Ø → 0 min                                                Début des
                             O → 30 min
                                                    O → 15 min                                               opérations
                                                                                                             dans
                                       Porte                                                                  ØØ → 2j
      Commerce                          ØØ → Nord                                            Opération        ØO → 3j
            (oui)                                                          Commerce          en cours         OØ → 4j
        (= abandon si
                                        ØO → Sud                          (non = creusage)      (non =
      opération en cours)               OØ → Est                                             planification)    OO → 5j
                                        OO → Ouest

                                   Figure 1.7 – Une stratégie plus lisible de réponse à la question 6

                    Dans ce cas, on peut remarquer que la formule la plus économique en termes de place
                    (fig. 1.8) est plus coûteuse en termes de ressources cognitives pour la décoder.
                    On peut également être tenté d’indiquer la prochaine opération de creusage alors qu’on
                    creuse en ce moment. . . Mais si on le fait, il manque un message pour indiquer qu’aucune
                    opération supplémentaire n’est prévue. Comme on creuse pour 3j il n’est pas strictement
                    nécessaire de prévenir d’une livraison dans 5j (on pourra prévenir le lendemain qu’elle a
                    lieu dans 4j). D’où les solutions suivantes :

Comme promis, au bout de 102 3 ans, vous quittez la prison, ne laissant derrière vous qu’un pa-
pier griffonné 4 , un morpion inutilisable 5 et un trou dans un placard, et tout ça sans l’aide de Rita
Hayworth. . .

    3. = 210 = 28
    4. cf. figure 1.6
    5. cf. figure 1.1
TD n◦ 1. Codage de l’information numérique — mise en situation (2. Les évadés)                                                     9

                                  Équipe de creusage :
                                  Les creuseurs potentiels sont classés par ordre
                                  alphabétique ("personne" étant avant tout le monde),
                                  on liste chaque équipe potentielle et on la numérote.
                                  ex : pas d'équipe (0), Ferreiro tout seul (1), Charrière tout
                                  seul (2), …, Ferreiro+Charrière (7), Ferreiro+Dantès (8), …,
                                  Charrière+Dantès (12), Charrière+Dufresne (13), …,
                                  Dantès+Dufresne (16), …,
                                  McMurphy+Scoffield (21).
                                  Autres messages : fin des opérations
                                  (22), début dans 2j (23), 3j (24), 4j (25),
                                  5j (26). Puis
                                  ØØØØØ → 0 ; ØØØØO → 1 ; ØØØOØ → 2 ;
                                  ØØØOO → 3 ; … ; OØOOØ → 22 ; … ;
                                  OOØØO → 25 ; OOØOØ → 26.

                                  Type
                                   Ø → commerce
                                   O → creusage

              Figure 1.8 – Une stratégie plus économique de réponse à la question 6

                                                                   Équipe de creusage :
                                                                   Les creuseurs potentiels sont classés par ordre
                                                                   alphabétique ("personne" étant avant tout le monde),
        Ferreiro        Charrière               Dantès             on liste chaque équipe potentielle et on la numérote.
                                                                   ex : pas d'équipe (0), Ferreiro tout seul (1), Charrière tout
                                                                   seul (2), …, Ferreiro+Charrière (7), Ferreiro+Dantès (8), …,
                                                                   Charrière+Dantès (12), Charrière+Dufresne (13), …,
                                                                   Dantès+Dufresne (16), …,
                                                                   McMurphy+Scoffield (21).
                                                                   Prochaine opération (22).
                                                                   Puis
       Dufresne         McMurphy               Scoffield            ØØØØØ → 0 ; ØØØØO → 1 ; ØØØOØ → 2 ;
                                                                   ØØØOO → 3 ; … ; OØOOØ → 22.
                                                                   NB : 10 autres messages peuvent
                                                                   encore être codés sur ces cases…

                        Prochaine opération dans                                          Prochaine opération dans
                         ØØ → pas d'info (ou 5j si 3              Type                     ØØ → pas d'info (code 0 → 21)
       Commerce         personnes sélectionnées)
                                                                   Ø → commerce                 5j (code 22 ci-dessus)
     (non = creusage)    ØO → 2j                                                           ØO → 2j
                         OØ → 3j                                   O → creusage            OØ → 3j
                         OO → 4j                                                           OO → 4j

Figure 1.9 – Deux stratégie de réponse à la question 6 permettant de mieux enchainer les opération
de creusage
TD n◦ 2

Fonctionnalités de base de Git

Le présent document vise à montrer en contexte des fonctionnalités de base de Git, en les intégrant
dans la pratique — de manière un peu artificielle, certes. . .
Pour un premier panorama des commandes de git peut être trouvé ici https://try.github.io/.
Beaucoup d’informations proviennent de https://www.atlassian.com/git/tutorials/.
Merci à Arnaud Bey pour ses suggestions.

Conventions : Dans le document suivant, les lignes de commande shell seront indiqués de la
manière suivante (avec les mots-clés notés ainsi). Des chevrons seront utilisés pour différencier
les paramètres où vous pouvez mettre la valeur de votre choix de ceux qui ont une sémantique propre.
Il n’est pas opportun de recopier les chevrons en question.

Exemple : Alain Connu, pour exécuter la commande git config user.name "", saisira git config
user.name "Alain Connu".

1    Débuter avec git
Git est un logiciel open source et peut être obtenu ici : http://git-scm.com/downloads
Git permet de gérer les versions et évolutions de code source (et par extension de tout fichier texte).
Pour ce faire, pour chaque modification significative du code (ajout de fonctionnalités, correction de
bugs, etc.), on pourra faire un commit, c’est-à-dire sauvegarder une version du code.
Git stocke les versions successives d’un dossier. Une fois « surveillé » par Git, un dossier est un
repository ou « repo ». En français on parlera de « dépôt ».
Git permet également de travailler à plusieurs. Afin de savoir qui fait quoi, git permet de stocker des
informations à apposer à chaque commit de l’utilisateur.
    — git config user.name "" : tous les commit effectués sur ce dépôt sont crédités à
       l’utilisateur appelé  ;
    — git config --global user.name "" : tous les commit effectués à partir de ce
       compte utilisateur (quel que soit le dépôt) sont crédités à l’utilisateur appelé  ;

                                                  10
TD n◦ 2. Fonctionnalités de base de Git (2. Créer un dossier un dépôt Git)                             11

     — git config --global user.email "" : l’adresse e-mail de l’utilisateur est .

Exercice d’application :         Nous allons voir ici quelques uns des effets de ces commandes.
        1. Installer Git
        2. Définir son nom pour l’usage de git sur la machine utilisée            git config --global
           user.name "John Doe"
        3. Dans le dossier utilisateur (˜ sous Linux / C:\Users\NomDUtilisateur sous Windows),
           ouvrir le fichier .gitconfig. Que remarquez-vous ? Le nom de l’utilisateur est indiqué.
        4. Modifier l’adresse de courrier électronique associée à l’utilisateur git config --global
           user.email "john.doe@anonymo.us"
        5. Que s’est-il passé dans le fichier de configuration ? L’adresse e-mail a été ajoutée.
Beaucoup d’autres choses peuvent être configurées, du logiciel utilisé pour éditer les fichiers à celui
pour traiter les cas de conflits entre les versions. . .
En effet, il peut arriver que deux versions entrent en conflit, dans ce cas l’utilisateur devra décider de
la version à conserver. Plutôt que de manipuler ces différentes version à la main (git annote le code
entrant en conflit) un logiciel de comparaison de fichier peut être utilisé. Voir par exemple :
    — https://alexjoz.gitbooks.io/code-life/content/chapter6.html (Linux).
    — http://blog.nerdbank.net/2011/10/how-to-get-meld-working-with-git-on.html
        (Windows) ;
       La commande git config --list affichera toutes les informations de configuration de votre
       git. Le fichier ˜/.config, donne moins d’informations mais de manière plus lisible.

                                Nota Bene 2.1: Afficher la configuration de git

2      Créer un dossier un dépôt Git
Pour créer un dépôt git vous pouvez :
   — prendre n’importe quel dossier et l’initialiser en tapant git init si vous êtes dans le dossier
       ou git init  ;
   — cloner un dépôt git existant avec git clone   (si  n’est
       pas spécifié, c’est dans le répertoire courant que le dépôt sera cloné.)

Exercice d’application : Pour l’exercice suivant vous allez vous contenter de créer un dossier (en
ligne de commande) dans un dossier existant. Vous ferez ensuite de ce dossier votre dépôt git.
        6. Ouvrir la console.
        7. Se déplacer jusqu’à votre dossier de travail en utilisant ls et cd 1 .
        8. Créer un dossier au nom de votre projet.
        9. Aller dans le dossier ainsi créé.
       10. Faire de ce dossier un dépôt git. En étant dans le bon dossier, il suffit de saisir : git
           init
    1. dir et cd sous windows
Master Didactique des langues — Parcours DILIPEM
12                                        Informatique, Web et Multimédia        Université Grenoble-Alpes

3       Effectuer un “commit”
Le flux de travail de base de git consiste en le fait d’effectuer des modifications puis de les grouper
en ensemble cohérent avant de les stocker dans un état du code. On appelle l’action de créer une
version du code un commit.
    — La (sous-)commande add permet d’ajouter le ou les fichiers ainsi sélectionnés au prochain
       commit :
       — git add  : ajoute  au prochain commit ;
       — git add  : ajoute tout le contenu de  au prochain commit ;
       — git add -p : ajoute tous les changements au prochain commit ;
       — git add --all  : ajoute tous les changements à  (y compris la
           suppression) pour le prochain commit ;
       — git reset  : retirer les modifications à  de la sélection pour le pro-
           chain commit.
    — git status : permet d’avoir la liste des fichiers modifiés et leur situation par rapport au
       prochain commit ;
    — git log : permet d’avoir la liste des commits pour la branche courante ;
    — La (sous-)commande commit permet de créer une nouvelle version du code 2 :
       — git commit : ouvre un éditeur de texte pour spécifier les informations du commit, qui est
           effectué à la fermeture de l’éditeur de texte ;
       — git commit -m "" : effectue le commit avec comme informations  ;
       — git commit -a : ajoute au commit suivant toutes les modifications effectuées sur des
           fichier préalablement inclus dans un commit (les créations de fichiers ne sont pas ajoutées
           au commit) ;
       — git commit --amend : met à jour le dernier commit avec les changements sélectionnés.
           Attention : cette commande est à utiliser avec parcimonie, surtout quand vous avez
           plusieurs dépôts pour le même projet. git commit --amend « réécrit l’historique », et ne
           doit être utilisé que si le commit précédent n’a pas été publié ou utilisé par ailleurs.

Exercice d’application :
        11. Dans le dépôt, créer un fichier texte appelé README.md.
        12. Dans ce fichier indiquer le nom de votre projet en titre. Vous pouvez utiliser pour cela la
             syntaxe Markdown 3

        13. Toujours dans le dépôt, créer un fichier texte appelé LICENSE.
        14. Ajouter dans ce fichier, le contenu de la licence MIT 4 .
        15. Exécuter la commande git status. Quelle est la situation ?

        16. Préparer un commit pour stocker dans une nouvelle version l’ajout de la licence, puis
             regarder le statut.
     2. Pour toujours bien savoir ce qu’on fait, il est conseillé d’utiliser git status avant tout commit.
     3. https://guides.github.com/features/mastering-markdown/
     4. http://opensource.org/licenses/MIT
TD n◦ 2. Fonctionnalités de base de Git (4. Gérer des branches)                                                   13

      17. Effectuer le commit.

      18. Ajouter une section contributeurs dans votre README.md, y inclure votre nom.
      19. Effectuer un commit pour cette modification

      20. Vous avez oublié d’ajouter vos informations de contact : mettre à jour le README et
           amendez le commit précédent pour qu’il intègre votre modification. 5

4     Gérer des branches
Git permet également d’expérimenter, de faire des tests sans affecter le code stable. Pour ce faire,
on va avoir recours à ce que l’on appelle des « branches », qui permettront de scinder le projet
en différente version. Dans la figure 2.1, 4 branches sont représentées simultanément (il est à noté
qu’elles sont nommées).
    — git branch : lister toutes les branches du dépôt ;
    — git branch  : créer la branche  (pas d’espace dans les noms
      de branche) ;
    — git checkout  6 : passer sur la branche  (elle doit exister 7 ) ;
    — git merge  : Fusionne la branche courante avec le contenu
      de la branche  ;

NB : Il n’est pas possible de changer de branche tant que toutes les modifications n’ont pas été
soit annulées soit « commitées ». Pour traiter ce genre de problématique la commande git stash 8
existe, mais dépasse le cadre de cette formation. Il est bon de savoir qu’elle existe, malgré tout. De
plus, fusionner des branches, peut créer des conflits, dans ce cas, il peut être bien pratique d’avoir un
outil de fusion (merge tool) correctement configuré (cf. § 1 p. 11).

Exercice d’application : 9
      21. Comment s’appelle la branche principale par défaut ? Comment l’avez-vous trouvée ?
   5. Pour bien voir ce qu’il se passe, vous pouvez utiliser git status et git log.
   6. On peut également s’en servir pour voir un commit passé. Chaque commit a un identifiant unique (accessible
avec git log), qui peut être passé en paramètre de git checkout.
   7. git checkout -b  permet de basculer sur la branche , après l’avoir créée si elle
n’existait pas
   8. http://git-scm.com/docs/git-stash
   9. Sur une formation aussi courte, c’est difficile de montrer à quel point c’est pratique. On se contentera ici de
montrer comment ça marche. . .
Master Didactique des langues — Parcours DILIPEM
14                                  Informatique, Web et Multimédia        Université Grenoble-Alpes

        Figure 2.1 – Représentation graphique (gitg) de différentes branches d’un projet

     22. Créer une branche « testInstall » et l’afficher (vérifier que vous êtes bien sur la bonne
         branche avec git branch)

     23. Une fois dans la branche « testInstall », créer un fichier INSTALL.md, qui contiendra
         quelques informations (du genre « nécessite un serveur Apache avec php 5 »). Vous en
         profiterez pour ajouter à README.md un paragraphe « install » indiquant de se référer au
         document que vous venez de créer.
     24. « Commiter » ces changements sur la branche « testInstall ».
     25. Retourner effectivement sur la branche master. Que remarquez-vous ?
     26. Vérifier que vous n’avez rien perdu en retournant sur la branche testInstall.
     27. Dans la branche master, modifier le fichier « README.md », pour y inclure une section
         « Install ». Et faire un commit des changements.
     28. Passer d’une branche à l’autre pour vérifier que « README.md » est effectivement dif-
         férent selon la branche.
TD n◦ 2. Fonctionnalités de base de Git (4. Gérer des branches)                                        15

     29. Finalement, cela vous semble préférable d’avoir un fichier séparé pour l’installation, nous
         allons récupérer les modification faites dans la branche testInstall et les insérer dans
         la branche master. Se mettre dans la branche master et appeler la commande merge
         avec la branche testInstall. Que se passe-t-il ?

     30. Pour corriger ce problème, il va falloir résoudre le conflit manuellement en modifiant
         « README.md », avant de l’ajouter aux modifications à venir, puis farie le commit.
Vous pouvez aussi lire