Skip to content
Snippets Groups Projects
TP1-TJO.md 7.48 KiB
Newer Older
Thomas's avatar
Thomas committed
# Cours Forge ZZ2 F2 2017

# Infos étudiant :

Par binôme Nom Prénom:
Thomas's avatar
Thomas committed
 * Thomas Jouve
Thomas's avatar
Thomas committed
## TP 1
Thomas's avatar
Thomas committed
Télécharger le sujet du TP à l'adresse suivante :
https://gitlab.isima.fr/mazenovi/2017-F2-Forge
Thomas's avatar
Thomas committed
#### 1.Les basiques
0. Créer un repository git
        $ mkdir tp1
        $ cd tp1/
        $ git init
        $ cp ../isima/tp1.md .
        $ git add tp1.md
Thomas's avatar
Thomas committed
0. _Par la suite pensez à commiter votre compte rendu apres chaques étapes dont l'enoncé est terminé par `*`, pour les messages de commit vous pouvez utiliser les numéros des questions (Ex Q1.2 ici)_
0. Ajouter le compte rendu dans le repo `*`
        $ git commit -m"Q1.3"
        [master (root-commit) ce7fd7a] Q1.3
         1 file changed, 140 insertions(+)
         create mode 100644 tp1.md
0. Afficher la status de votre copie de travail
        $ git status
        On branch master
        nothing to commit, working tree clean
0. Modifiez le compte rendu pour supprimer la première partie et indiquez vos noms `*`
        $mv tp1.md tjo-tp1.md
        $git add tjo-tp1.md
        $ git commit -m"Q1.5"
        [master 9dc117f] Q1.5
         1 file changed, 81 insertions(+)
         create mode 100644 tjo-tp1.md
Thomas's avatar
Thomas committed
0. Afficher l'historique de votre repo
          $ git log
          commit 429909c46dac9e30f82e38730a3e1b6a89adf678
          Author: tjouve <jouve.thomas@gmail.com>
          Date:   Sat Jan 6 03:37:26 2018 +0100
Thomas's avatar
Thomas committed
          Q1.5
Thomas's avatar
Thomas committed
          commit ce7fd7a6751667ce66472422023c8b8093d0844e
          Author: tjouve <jouve.thomas@gmail.com>
          Date:   Sat Jan 6 03:23:26 2018 +0100
Thomas's avatar
Thomas committed
          Q1.3
Thomas's avatar
Thomas committed
0. Renommer ce fichier en préfixant avec vos noms en amendant le commit précédent `*`
          $ git commit -a -m"Q1.5" --amend
          [master 429909c] Q1.5
           Date: Sat Jan 6 03:37:26 2018 +0100
           1 file changed, 21 insertions(+), 75 deletions(-)
           rename tp1.md => tjo-tp1.md (57%)
Thomas's avatar
Thomas committed
0. Afficher l'historique de votre repo
          $ git log
          commit b93d5b34b24bd5575bf766e14506afb89f07d2b1
          Author: tjouve <jouve.thomas@gmail.com>
          Date:   Sat Jan 6 03:37:26 2018 +0100
Thomas's avatar
Thomas committed
          Q1.7
Thomas's avatar
Thomas committed
          commit ce7fd7a6751667ce66472422023c8b8093d0844e
          Author: tjouve <jouve.thomas@gmail.com>
          Date:   Sat Jan 6 03:23:26 2018 +0100
Thomas's avatar
Thomas committed
          Q1.3
Thomas's avatar
Thomas committed
0. Il ne drevrait y avoir que deux entrées dans l'historique pourquoi ? `*`
Thomas's avatar
Thomas committed
  On à utlisé la commande ammend qui permet de remplacer le dernier commit
0. Créer un nouveau fichier : file2ignore
        $ touch file2ignore
        $ ls
        file2ignore  tjo-tp1.md
0. Afficher la status de votre copie de travail
        $ git status
        On branch master
        Changes not staged for commit:
        (use "git add <file>..." to update what will be committed)
        (use "git checkout -- <file>..." to discard changes in working directory)
Thomas's avatar
Thomas committed
        modified:   tjo-tp1.md
Thomas's avatar
Thomas committed
        Untracked files:
        (use "git add <file>..." to include in what will be committed)
Thomas's avatar
Thomas committed
        file2ignore
Thomas's avatar
Thomas committed
        no changes added to commit (use "git add" and/or "git commit -a")
Thomas's avatar
Thomas committed
0. On souhaite que ce fichier soit ignoré et ne soit jamais commiter. Réalisez la configuration nécesaire pour que cette regle soit effective `*`
        echo file2ignore > .gitignore
        git add .gitignore
        $ git commit -a -m "Q1.12"
        [master d6d525a] Q1.12
         2 files changed, 22 insertions(+)
         create mode 100644 .gitignore
Thomas's avatar
Thomas committed
0. Lister le contenu du repertoire courant, afficher le status et la log `*`
        $ ls
        file2ignore  tjo-tp1.md
Thomas's avatar
Thomas committed
        $ git status
        On branch master
        Changes not staged for commit:
          (use "git add <file>..." to update what will be committed)
          (use "git checkout -- <file>..." to discard changes in working directory)
Thomas's avatar
Thomas committed
                modified:   tjo-tp1.md
Thomas's avatar
Thomas committed
        no changes added to commit (use "git add" and/or "git commit -a")
        $ git log
        commit d6d525aa2108dc265459b402761e2032cfb3f162
        Author: tjouve <jouve.thomas@gmail.com>
        Date:   Sat Jan 6 03:43:16 2018 +0100

            Q1.12

        commit 2461ccde274f9bbd668cd67aba4ced120408142f
        Author: tjouve <jouve.thomas@gmail.com>
        Date:   Sat Jan 6 03:41:00 2018 +0100

            Q1.8

        commit b93d5b34b24bd5575bf766e14506afb89f07d2b1
        Author: tjouve <jouve.thomas@gmail.com>
        Date:   Sat Jan 6 03:37:26 2018 +0100

            Q1.7

        commit ce7fd7a6751667ce66472422023c8b8093d0844e
        Author: tjouve <jouve.thomas@gmail.com>
        Date:   Sat Jan 6 03:23:26 2018 +0100
Thomas's avatar
Thomas committed


0. Créer un nouveau fichier, nommé start, contenant la date et l'heure actuelle `*`
Thomas's avatar
Thomas committed
        $ echo $(date) > start
        $ git add start
        $ git commit -a -m "Q1.14"
        [master 1626514] Q1.14
         1 file changed, 1 insertion(+)
         create mode 100644 start
Thomas's avatar
Thomas committed

##### 2. Les branches
0. Créez une branche portant votre nom et basculer sur cette branche (dans la suite du TP cette branche est désignée par `mybranch`)
0. Lister les branches locales et les fichiers présent dans le répertoire courant `*`
0. Aficher le status de votre repo `*`
0. Créez une branche pour _développer_ la réponse de ce point (nommez là `mybranch-2.4` par exemple)
  0. Afficher un historique sous forme de graph (`a dog`) de votre repo
  0. Pourquoi les 2 branches pointent elles sur la même révision ?`*`
  0. Afficher à nouvea l'historique pour montrer les modifications suite au précédent commit `*`
0. Revenir la brache `mybranch`
0. Où sont passé vos reponces au point 2.4 ? `*`
0. Affichez un historique sous forme de graph (`a dog`) de votre repo, Que peux ton en dire ?
0. Revenir sur la branche master
0. Ajoutez et commitez un fichier (touch new_file)
0. Revenir sur votre branche `mybranch` pour completer le compte rendu `*`
0. Affichez un historique sous forme de graph (`a dog`) de votre repo `*`

##### 3. Merge
0. Merge depuis head
  0. switcher sur une nouvelle branche `mybranch-3.1`
  0. ajout un nouveau fichier nommé easy_merge avec la date et l'heure actuelle `*`
  0. merger la branche `mybranch-4.1` sur `mybranch`
0. Afficher le status
0. Pourquoi n'y a t'il aucune modification en cours ? `*`
0. Affichez un historique sous forme de graph (`a dog`) de votre repo et décire l'état courant`*`
0. Merge avec modifications
  0. Mergez les modifications de la branche `mybranch-2.4` sur `mybranch` (`*echap* :wq *enter*` pour sauvegarder le message de commit et quitter)`*`
  0. Affichez un historique sous forme de graph (`a dog`) de votre repo `*`
0. Merge avec conflit
  0. Céer une nouvelle branche `mybranch-3.6`
  0. Notez dans le CR la date et l'heure actuelle (avec la commande `date` par exemple) `*`
  0. Switchez sur la nouvelle branche et modifiez la réponse précendante dans le CR avec le `*`
  0. Réalisez le merge de la brache `mybranch-3.6` sur `mybranch`. Le prompt change, pourquoi ? Gerer le conflit et commiter.
0. Supprimer les branches de feature et afficher toutes les branches restantes, affichez un historique sous forme de graph (`a dog`) de votre repo `*`

##### 4. Remote
0. Afficher l'historique de votre repo
0. Ajouter le projet "2017-F2-Forge" comme repository distant `*`
0. Lister les branches distantes
0. Pousser votre branche de votre repo local sur le repos distant `*`
0. En consultant votre branche sous gitlab, vous devriez constaté que la date de modification du fichier start est plus acienne que celle de votre compte rendu, porquoi alors que le push de toute votre branche est faite en une seule fois ?
0. Supprimer le dossier .git
0. Faire un git status ?