Skip to content
Snippets Groups Projects
Beuvot-Maleterre-Compte-Rendu.md 18.7 KiB
Newer Older
# Cours Forge ZZ2 F2 2017

# Infos étudiant :

Par binôme Nom Prénom:
 * Beuvot Richard
 * Maleterre Clement

## TP 1


Télécharger le sujet du TP à l'adresse suivante :
https://gitlab.isima.fr/mazenovi/2017-F2-Forge

#### 1. Les basiques
0. Créer un repository git
>     git init TP1-Git
> ##### Commentaire
> Creation du repos TP1-Git

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 add Compte-Rendu.md
>     git commit -m "Q1.3 Ajout du compte rendu"
> ##### Commentaire
> Ajout du compte rendu et commit

0. Afficher la status de votre copie de travail
>     git status
> ##### Commentaire
> Affiche s'il y a des modifications à commit (ici non)
> ##### Résultat
>     On branch master
>     nothing to commit, working tree clean
0. Modifiez le CR pour supprimer la première partie et indiquez vos noms (n'oublier pas de faire un `git add` pour marque le fichier comme devant être ajouté) `*`
>     git add Compte-Rendu.md
>     git commit -m "Q1.5 Modification du compte rendu"
> ##### Commentaire
> Prise en compte de la modification et commit

0. Afficher l'historique de votre repo
>     git log
> ##### Commentaire
> Affiche les deux commits précédents avec Date, Auteur et message du commit
> ##### Résultat
>     commit fdc4b645a6914215dceb6d53635f33fa9220f356 (HEAD -> master)
>     Author: BEUVOT Richard <richard.beuvot@poste.isima.fr>
>     Date:   Mon Jan 8 18:28:54 2018 +0100
>        Q1.5 Modification du compte rendu
>   
>     commit 45ed30618fb51b855e4a1f2fd1f2d0fef4a562f2
>     Author: BEUVOT Richard <richard.beuvot@poste.isima.fr>
>     Date:   Mon Jan 8 18:24:09 2018 +0100
>
>       Q1.3 Ajout du compte rendu
0. Renommer ce fichier en préfixant avec vos noms en amendant le commit précédent (`git commit -m "mon message"` pour indiquer le mesage de commit directement) `*`
>     git add Beuvot-Maleterre-Compte-Rendu.md
>     git add Compte-Rendu.md
>     git commit -m "Q1.7 Modification du CR et de son nom" --amend
> ##### Commentaire
> Ajout du nouveau fichier et de la suppression de l'ancien
> Changement du commit précédent

0. Afficher l'historique de votre repo
>     git log
> ##### Commentaire
> Affiche les deux commits précédents avec Date, Auteur et message du commit.
> ##### Résultat
>     commit 1b97861b09c1ccad3b594fa8270971676f1baab0 (HEAD -> master)
>     Author: BEUVOT Richard <richard.beuvot@poste.isima.fr>
>     Date:   Mon Jan 8 18:28:54 2018 +0100
>
>       Q1.7 Modification du CR et de son nom
>
>     commit 45ed30618fb51b855e4a1f2fd1f2d0fef4a562f2
>     Author: BEUVOT Richard <richard.beuvot@poste.isima.fr>
>     Date:   Mon Jan 8 18:24:09 2018 +0100
>
>       Q1.3 Ajout du compte rendu

0. Il ne devrait y avoir que deux entrées dans l'historique pourquoi ? `*`
> Le commit Q1.5 à été modifié par le commit Q1.7.

0. Créer un nouveau fichier, nommé start, contenant la date et l'heure actuelle `*`
>     echo `date` > start
>     git add start
>     git commit -m "Q1.10 Ajout du fichier start avec date actuelle"
> ##### Commentaire
> On utilise la commande bash pour créer le fichier start puis on commit.

0. Créer un nouveau fichier : file2ignore
>     touch file2ignore
> ##### Commentaire
> Création du fichier file2ignore.

0. Afficher la status de votre copie de travail
>     git status
> ##### Commentaire
> Indique que les modifications de CR et que l'ajout du fichier file2ingore ne sont actuellement pas prise en compte en cas de commit. (Il faut faire un git add)
> ##### Résultat
>     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)
>     
>             modified:   Beuvot-Maleterre-Compte-Rendu.md
>     
>     Untracked files:
>       (use "git add <file>..." to include in what will be committed)
>     
>             file2ignore
>     
>     no changes added to commit (use "git add" and/or "git commit -a")

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 -m "Q1.13 Ajout du gitignore pour ignore file2ignore"
> ##### Commentaire
> Ajout du .gitignore afin d'ignorer file2ignore

0. Lister le contenu du repertoire courant, afficher le status et la log
>     ls
>     git status
>     git log
> ##### Commentaire
> Résultat des commandes. Le fichier de Compte-Rendu apparait à cause des sauvegarde régulière non commit.
> ##### Résultat
>     $ ls -a
>     ./  ../  .git/  .gitignore  Beuvot-Maleterre-Compte-Rendu.md  file2ignore  start
>     
>     $ 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)
>     
>             modified:   Beuvot-Maleterre-Compte-Rendu.md
>     
>     no changes added to commit (use "git add" and/or "git commit -a")
>     
>     $ git log
>     commit c70035e94cd361e19794ef1ed89fb312dfe3ffe6 (HEAD -> master)
>     Author: BEUVOT Richard <richard.beuvot@poste.isima.fr>
>     Date:   Mon Jan 8 18:54:25 2018 +0100
>     
>         Q1.13 Ajout du gitignore pour ignore file2ignore
>     
>     commit d7bd190b11d47444b4b023c3d55beac25e811505
>     Author: BEUVOT Richard <richard.beuvot@poste.isima.fr>
>     Date:   Mon Jan 8 18:44:37 2018 +0100
>     
>         Q1.10 Ajout du fichier start avec date actuelle
>     
>     commit 1b97861b09c1ccad3b594fa8270971676f1baab0
>     Author: BEUVOT Richard <richard.beuvot@poste.isima.fr>
>     Date:   Mon Jan 8 18:28:54 2018 +0100
>     
>         Q1.7 Modification du CR et de son nom
>     
>     commit 45ed30618fb51b855e4a1f2fd1f2d0fef4a562f2
>     Author: BEUVOT Richard <richard.beuvot@poste.isima.fr>
>     Date:   Mon Jan 8 18:24:09 2018 +0100
>     
>         Q1.3 Ajout du compte rendu

0. Avant de commiter affichez les modifications par rapport à la précédente révision ? `*`
>     git diff
>     git add Beuvot-Maleterre-Compte-Rendu.md
>     git commit -m "Q1.15 Modification du CR"
> ##### Commentaire
> Affiche les différences entre la version actuelle et le dernier commit
> ##### Résultat
>     diff --git a/Beuvot-Maleterre-Compte-Rendu.md b/Beuvot-Maleterre-Compte-Rendu.md
>     index d899d0b..b523557 100644
>     --- a/Beuvot-Maleterre-Compte-Rendu.md
>     +++ b/Beuvot-Maleterre-Compte-Rendu.md
>     @@ -29,6 +29,9 @@ https://gitlab.isima.fr/mazenovi/2017-F2-Forge
>     
>     +>     $ git log
>     +>     commit c70035e94cd361e19794ef1ed89fb312dfe3ffe6 (HEAD -> master)
>     +>     Author: BEUVOT Richard <richard.beuvot@poste.isima.fr>
>     +>     Date:   Mon Jan 8 18:54:25 2018 +0100
>     +>
>     +>         Q1.13 Ajout du gitignore pour ignore file2ignore

##### 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`)
>        git branch BeuvotMaleterre
>        git checkout BeuvotMaleterre
0. Lister les branches locales et les fichiers présent dans le répertoire courant `*`
>        git branch
>        ls -a
>        git commit -m "Q2.2 Ajout d'une branche"
>
>        ---
>
>        * BeuvotMaleterre
>        master
>
>        ./  ../  .git/  .gitignore  Beuvot-Maleterre-Compte-Rendu.md  file2ignore  start
0. Aficher le status de votre repo `*`
>        git status
>        git commit -m "Q2.2 Ajout d'une branche"
>
>        ---
>
>        On branch BeuvotMaleterre
>        nothing to commit, working tree clean
0. Créez une branche pour _développer_ la réponse de ce point (nommez là `mybranch-2.4` par exemple)
>         git branch BeuvotMaleterre-2.4
>         git checkout BeuvotMaleterre-2.4

  0. Afficher un historique sous forme de graph (`a dog`) de votre repo
>          git log --all --decorate --oneline --graph
>
>     ---
>
>
>     * ce81936 (HEAD -> BeuvotMaleterre-2.4, origin/BeuvotMaleterre, BeuvotMaleterre) Q4.4 Modif CR + Push branche
>     * cdc77c4 Q2.2 Ajout d'une branche

  0. Pourquoi les 2 branches pointent elles sur la même révision ?`*`
>         git add *
>         git commit -m "Q2.4.2 Nouvelle branche 2.4"
>##### Commentaire
> Aucun commit n'a été effectué depuis la création de la nouvelle branche : elle contient les même sources

  0. Afficher à nouveau l'historique pour montrer les modifications suite au précédent commit `*`
>         git log --all --decorate --oneline --graph
>         git add *
>         git commit -m "Q2.4.3 Nouveaux Commit !"
>
>
>     ---
>
>
>         * 408c75b (HEAD -> BeuvotMaleterre-2.4) Q2.4.2 Nouvelle branche 2.4
>         * ce81936 (origin/BeuvotMaleterre, BeuvotMaleterre) Q4.4 Modif CR + Push branche
>         * cdc77c4 Q2.2 Ajout d'une branche

0. Revenir la brache `mybranch`
>         git checkout BeuvotMaleterre

0. Où sont passé vos reponses au point 2.4 ? `*`
>         git add *
>         git commit -m "Q2.6 Réapparition des réponses !"
>##### Commentaire
> Etant retourné sur BeuvotMaleterre, les reponses 2.4.2 et 2.4.3 n'ont pas été commit sur cette branche, elles ont été commit sur BeuvotMaleterre-2.4

0. Affichez un historique sous forme de graph (`a dog`) de votre repo, Que peux ton en dire ?
>         git log --all --decorate --oneline --graph
>
>
>     ---
>
>
>         * 99e0aad (HEAD -> BeuvotMaleterre) Q2.6 Réapparition des réponses !
>         | * c151844 (BeuvotMaleterre-2.4) Q2.4.3 Nouveaux Commit !
>         | * 408c75b Q2.4.2 Nouvelle branche 2.4
>         |/
>         * ce81936 (origin/BeuvotMaleterre) Q4.4 Modif CR + Push branche
>         * cdc77c4 Q2.2 Ajout d'une branche

0. Revenir sur la branche master
>         git checkout master

0. Ajoutez et commitez un fichier (touch new_file)
>         touch new_file.txt
>         git add new_file.txt
>         git commit -m "2.9 Ajout d'un fichier new_file sur master"

0. Revenir sur votre branche `mybranch` pour completer le compte rendu `*`
>         git checkout BeuvotMaleterre
>         git add *
>         git commit -m "2.10 Un commit aléatoire"

0. Affichez un historique sous forme de graph (`a dog`) de votre repo `*`
>         git log --all --decorate --oneline --graph
>
>
>     ---
>
>

##### 3. Merge
0. Merge depuis head
  0. switcher sur une nouvelle branche `mybranch-3.1`
  >         git checkout -b BeuvotMaleterre-3.1
  >
  >
  >     ---
  >     Switched to a new branch 'BeuvotMeleterre-3.1'
  >
  0. ajout un nouveau fichier nommé easy_merge avec la date et l'heure actuelle `*`
  >         date > easy_merge
  >         git add easy_merge
  >         git commit -m "3.1.2 Ajout de easy_merge"
  >
  >     ---
  >     [BeuvotMeleterre-3.1 d698df3] 3.1.2 Ajout de easy_merge
 >      1 file changed, 1 insertion(+)
 >      create mode 100644 easy_merge
  0. merger la branche `mybranch-4.1` sur `mybranch`
  >         git checkout BeuvotMaleterre
Clement  MALETERRE's avatar
Clement MALETERRE committed
  >         git merge BeuvotMaleterre-3.1
Clement  MALETERRE's avatar
Clement MALETERRE committed
  >     Updating 2eeb732..07fe811
  >     Fast-forward
   >     Beuvot-Maleterre-Compte-Rendu.md | 28 ++++++++++++++++++++++++++++
  >     easy_merge                       |  1 +
  >     2 files changed, 29 insertions(+)
  >     create mode 100644 easy_merge

0. Afficher le status
Clement  MALETERRE's avatar
Clement MALETERRE committed
>         git status
>
>     ---
>     On branch BeuvotMaleterre
>     nothing to commit, working tree clean

0. Pourquoi n'y a t'il aucune modification en cours ? `*`
Clement  MALETERRE's avatar
Clement MALETERRE committed
>##### Commentaire
> Il n'y a aucune modification en cours car on a merge BeuvotMaleterre-3.1 et BeuvotMaleterre : les modifications de la première branche ont étés mises sur la seconde

0. Affichez un historique sous forme de graph (`a dog`) de votre repo et décire l'état courant`*`
Clement  MALETERRE's avatar
Clement MALETERRE committed
>         git log --all --decorate --oneline --graph
>     ---
>         * 07fe811 (HEAD -> BeuvotMaleterre, BeuvotMaleterre-3.1) 3.1.2 Ajout de easy_merge
>         | * d698df3 (BeuvotMeleterre-3.1) 3.1.2 Ajout de easy_merge
>         |/
>         * 2eeb732 (origin/BeuvotMaleterre) 2.10 Un commit aléatoire
>         * 99e0aad Q2.6 Réapparition des réponses !
>##### Commentaire
> On peut ici voir que deux branches pointent sur le meme noeud, BeuvotMaleterre-3.1 et BeuvotMaleterre, car ona effectué un merge précedemment
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)`*`
Clement  MALETERRE's avatar
Clement MALETERRE committed
  >         git merge BeuvotMaleterre-2.4
  >     ---
  >      
  0. Affichez un historique sous forme de graph (`a dog`) de votre repo `*`
Clement  MALETERRE's avatar
Clement MALETERRE committed
  >         git log --all --decorate --oneline --graph
  >     ---
0. Merge avec conflit
  0. Céer une nouvelle branche `mybranch-3.6`
Clement  MALETERRE's avatar
Clement MALETERRE committed
  >         git branch BeuvotMaleterre-3.6
  >     ---
  >         Switched to a new branch 'BeuvotMaleterre-3.6'

  0. Notez dans le CR la date et l'heure actuelle (avec la commande `date` par exemple) `*`
Clement  MALETERRE's avatar
Clement MALETERRE committed
    >         date > fic_date
    >         git add fic_date
    >         git commit -m"3.6.2 ajout de fic_date"
  0. Switchez sur la nouvelle branche et modifiez la réponse précendante dans le CR avec le `*`
Clement  MALETERRE's avatar
Clement MALETERRE committed
  >         git checkout BeuvotMaleterre-3.6
  >         date > fic_date
  >         git add fic_date
  >         git commit -m"3.6.2 ajout de fic_date"
  0. Réalisez le merge de la brache `mybranch-3.6` sur `mybranch`. Le prompt change, pourquoi ? Gerer le conflit et commiter.
Clement  MALETERRE's avatar
Clement MALETERRE committed
  >         git checkout BeuvotMaleterre
  >         git merge BeuvotMaleterre-3.6
  >     ---
  >        Auto-merging fic_date
  >        CONFLICT (add/add): Merge conflict in fic_date
  >        Automatic merge failed; fix conflicts and then commit the result.
  >##### Commentaire
  > Le prompt change et affiche alors (BeuvotMaleterre|MERGING) comme branche. On peux alors gérer le conflit. Si on lit un fichier, on aura alors le contenu des fichiers pour chaque branche. On peut ainsi modifier le fichier pour seulement garder un des deux contenu
  >         cat fic_date
  >     ---
  >        <<<<<<< HEAD
  >       sam.  3 févr. 2018 13:53:47
  >       =======
  >       sam.  3 févr. 2018 13:52:14
  >       >>>>>>> BeuvotMaleterre-3.6
  >     ---
  >         vi fic_date
  >         git add *
  >         git commit -am"3.6.4"
  >     ---
  >       [BeuvotMaleterre 6508e33] 3.6.4

0. Supprimer les branches de feature et afficher toutes les branches restantes, affichez un historique sous forme de graph (`a dog`) de votre repo `*`
Clement  MALETERRE's avatar
Clement MALETERRE committed
>         git branch --del BeuvotMaleterre-3.6
>     ---
>         Deleted branch BeuvotMaleterre-3.6 (was 7e5defc).
>     ---
>         git branch --del BeuvotMaleterre-3.1
>     ---
>         Deleted branch BeuvotMaleterre-3.1 (was 07fe811).
>     ---
>       git log --all --decorate --oneline --graph
>     ---
>         *   6508e33 (HEAD -> BeuvotMaleterre) 3.6.4
>        | * 7e5defc 3.6.2 ajout de fic_date
>        * | 032a60d 3.6.2 ajout de fic_date
>        |/
>        * 07fe811 3.1.2 Ajout de easy_merge
>        | * d698df3 (BeuvotMeleterre-3.1) 3.1.2 Ajout de easy_merge
>        |/



##### 4. Remote
0. Afficher l'historique de votre repo
Clement  MALETERRE's avatar
Clement MALETERRE committed
>       git log
>     ---
>       commit 95d9d0efb25b8151d152d65c5298b2fffd1144d2 (HEAD -> BeuvotMaleterre)
>       Author: MALETERRE Clement <clement.maleterre@poste.isima.fr>
>       Date:   Sat Feb 3 14:09:07 2018 +0100
>       
>           fin 3
>       
>       commit 6508e33580cbd462328f7b29902ba816c47490ad
>       Merge: 032a60d 7e5defc
>       Author: MALETERRE Clement <clement.maleterre@poste.isima.fr>
>       Date:   Sat Feb 3 14:00:49 2018 +0100
>       
>           3.6.4
>       
>       commit 032a60d3a22a7fb1505d7a3f9886249f9ebab9fd
>       Author: MALETERRE Clement <clement.maleterre@poste.isima.fr>
>       Date:   Sat Feb 3 13:53:59 2018 +0100
>       
>           3.6.2 ajout de fic_date
0. Ajouter le projet "2017-F2-Forge" comme repository distant `*`
Clement  MALETERRE's avatar
Clement MALETERRE committed
>       git remote add origin https://clmaleterr1@gitlab.isima.fr/mazenovi/2017-F2-Forge.git
0. Lister les branches distantes
Clement  MALETERRE's avatar
Clement MALETERRE committed
>       git fetch
>       
>       ---
>       
>       warning: no common commits
>       remote: Counting objects: 141, done.
>       remote: Compressing objects: 100% (77/77), done.
>       remote: Total 141 (delta 44), reused 141 (delta 44)
>       Receiving objects: 100% (141/141), 8.64 MiB | 37.82 MiB/s, done.
>       Resolving deltas: 100% (44/44), done.
>       From https://gitlab.isima.fr/mazenovi/2017-F2-Forge
>       * [new branch]      BertoniWalczyszyn  -> origin/BertoniWalczyszyn
>       * [new branch]      JeanCharles_Neboit -> origin/JeanCharles_Neboit
>       * [new branch]      SERRE_PRUNIER      -> origin/SERRE_PRUNIER
>       * [new branch]      Supports           -> origin/Supports
>       * [new branch]      che_sig-2.4        -> origin/che_sig-2.4
>       * [new branch]      develop            -> origin/develop
>       * [new branch]      dorian-selimovic   -> origin/dorian-selimovic
>       * [new branch]      master             -> origin/master
>       * [new branch]      pushToIsima        -> origin/pushToIsima
0. Pousser votre branche de votre repo local sur le repos distant `*`
Clement  MALETERRE's avatar
Clement MALETERRE committed
>       git push origin BeuvotMaleterre
>       
>       ---
>       
>       Counting objects: 21, done.
>       Delta compression using up to 4 threads.
>       Compressing objects: 100% (18/18), done.
>       Writing objects: 100% (21/21), 7.10 KiB | 661.00 KiB/s, done.
>       Total 21 (delta 5), reused 1 (delta 0)
>       remote:
>       remote: To create a merge request for BeuvotMaleterre, visit:
>       remote:   https://gitlab.isima.fr/mazenovi/2017-F2-Forge/merge_requests/new?merge_request%5Bsource_branch%5D=BeuvotMaleterre
>       remote:
>       To https://gitlab.isima.fr/mazenovi/2017-F2-Forge.git
>       * [new branch]      BeuvotMaleterre -> BeuvotMaleterre
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 ?
Clement  MALETERRE's avatar
Clement MALETERRE committed
>##### Commentaire
> Le push sur gitlab a ici pris en compte tous les différents commit effectués. Or, le fichier start n'a pas été modifié depuis longtemps (un des premiers commits), ce qui n'est pas le cas du compte-rendu qui a été regulierement modifié et est compris dans presque tous les commits. Ainsi, la date de modification de start et plus ancienne que celle du compte-rendu.
0. Supprimer le dossier .git
Clement  MALETERRE's avatar
Clement MALETERRE committed
>     rm .git
0. Faire un git status ?
Clement  MALETERRE's avatar
Clement MALETERRE committed
>     git status
>       ---
>     fatal: Not a git repository (or any of the parent directories): .git
>##### Commentaire
> ce message d'erreur est normal : on a supprimé le fichier qui correspond à la base de donnees git. Ainsi, le dossier est desormais un dossier "normal" et n'est plus associé à git