Skip to content
Snippets Groups Projects
Forked from Vincent MAZENOD / 2017-F2-Forge
Source project has a limited visibility.

Cours Forge ZZ2 F2 2017

Infos étudiant :

  • SELIMOVIC Dorian

TP 1

1. Les basiques

  1. Créer un repository gits
$ git init
Initialized empty Git repository in /XXXX/2017-F2-Forge/.git/
  1. 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)
  2. Ajouter le compte rendu dans le repo *
$ git add -A
$ git commit -m "Add compte-rendu.md"
[master (root-commit) 6bd3cbb] Add compte-rendu.md
 1 file changed, 14 insertions(+)
 create mode 100644 compte-rendu.md
  1. 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)
    
    	modified:   compte-rendu.md
    
    no changes added to commit (use "git add" and/or "git commit -a")
  2. 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é) *

Fait.

  1. Afficher l'historique de votre repo

    $ git log
    commit e4e58b98b1b008bb0a5000ecfc47c4393d03907d
    Author: Dorian Selimovic <selimovic.dorian@gmail.com>
    Date:   Mon Feb 5 18:49:21 2018 +0100
    
        Q1.5
    
    commit f256d85c1c2f27e7e563b458b7093e896ca61ddd
    Author: Dorian Selimovic <selimovic.dorian@gmail.com>
    Date:   Mon Feb 5 18:47:10 2018 +0100
    
        Q1.3
    
    commit 6bd3cbb92961dcc7cc2887392ba991ddffee4632
    Author: Dorian Selimovic <selimovic.dorian@gmail.com>
    Date:   Mon Feb 5 18:44:36 2018 +0100
    
        Add compte-rendu.md
  2. 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) *

$ mv compte-rendu.md selimovic-compte-rendu.md
$ git add -A
$ git commit -am "Rename compte-rendu"
[master 80d9397] Rename compte-rendu
 1 file changed, 21 insertions(+)
 rename compte-rendu.md => selimovic-compte-rendu.md (89%)
  1. Afficher l'historique de votre repo

    $ git log
    commit 80d939781c8f3b5b501b8461c6dd998245e338dd
    Author: Dorian Selimovic <selimovic.dorian@gmail.com>
    Date:   Mon Feb 5 18:51:55 2018 +0100
    
        Rename compte-rendu
    
    commit e4e58b98b1b008bb0a5000ecfc47c4393d03907d
    Author: Dorian Selimovic <selimovic.dorian@gmail.com>
    Date:   Mon Feb 5 18:49:21 2018 +0100
    
        Q1.5
    
    commit f256d85c1c2f27e7e563b458b7093e896ca61ddd
    Author: Dorian Selimovic <selimovic.dorian@gmail.com>
    Date:   Mon Feb 5 18:47:10 2018 +0100
    
        Q1.3
    
    commit 6bd3cbb92961dcc7cc2887392ba991ddffee4632
    Author: Dorian Selimovic <selimovic.dorian@gmail.com>
    Date:   Mon Feb 5 18:44:36 2018 +0100
    
        Add compte-rendu.md
  2. Il ne devrait y avoir que deux entrées dans l'historique pourquoi ? *

Parce que le commit a été ammendé

  1. Créer un nouveau fichier, nommé start, contenant la date et l'heure actuelle *
$ echo `date` > start
  1. Créer un nouveau fichier : file2ignore
$ touch file2ignore
  1. 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)
    
    	modified:   selimovic-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")
  2. 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
  1. Lister le contenu du repertoire courant, afficher le status et la log

    $ ls -la
    total 28
    drwxr-xr-x 3 XXXX XXXX 4096 Feb  5 18:57 .
    drwxr-xr-x 3 XXXX XXXX 4096 Feb  5 18:39 ..
    -rw-r--r-- 1 XXXX XXXX    0 Feb  5 18:56 file2ignore
    drwxr-xr-x 8 XXXX XXXX 4096 Feb  5 18:58 .git
    -rw-r--r-- 1 XXXX XXXX   12 Feb  5 18:57 .gitignore
    -rw-r--r-- 1 XXXX XXXX 6904 Feb  5 18:58 selimovic-compte-rendu.md
    -rw-r--r-- 1 XXXX XXXX   28 Feb  5 18:55 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:   selimovic-compte-rendu.md
    
    no changes added to commit (use "git add" and/or "git commit -a")
    $ git log
    commit 02672f8fd9d27dd80c7f5201fa715f0c3b78911a
    Author: Dorian Selimovic <selimovic.dorian@gmail.com>
    Date:   Mon Feb 5 18:58:06 2018 +0100
    
        Q1.13
    
    commit 696e5f9ccf8b6b4ac0af9902c612bf51f2690a91
    Author: Dorian Selimovic <selimovic.dorian@gmail.com>
    Date:   Mon Feb 5 18:56:28 2018 +0100
    
        Q1.10
    
    commit db1ca34d13f87563424855a79e09d07494d4d511
    Author: Dorian Selimovic <selimovic.dorian@gmail.com>
    Date:   Mon Feb 5 18:54:13 2018 +0100
    
        Q1.9
    
    commit 80d939781c8f3b5b501b8461c6dd998245e338dd
    Author: Dorian Selimovic <selimovic.dorian@gmail.com>
    Date:   Mon Feb 5 18:51:55 2018 +0100
    
        Rename compte-rendu
    
    commit e4e58b98b1b008bb0a5000ecfc47c4393d03907d
    Author: Dorian Selimovic <selimovic.dorian@gmail.com>
    Date:   Mon Feb 5 18:49:21 2018 +0100
    
        Q1.5
    
    commit f256d85c1c2f27e7e563b458b7093e896ca61ddd
    Author: Dorian Selimovic <selimovic.dorian@gmail.com>
    Date:   Mon Feb 5 18:47:10 2018 +0100
    
        Q1.3
    
  2. Avant de commiter affichez les modifications par rapport à la précédente révision ? *

Il affiche en vert le contenu de la question précédente.

2. Les branches
  1. 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 checkout -b selimovic
Switched to a new branch 'selimovic'
  1. Lister les branches locales et les fichiers présent dans le répertoire courant *

    $ git branch
      master
    * selimovic
    $ ls -la
    total 32
    drwxr-xr-x 3 XXXX XXXX 4096 Feb  5 18:57 .
    drwxr-xr-x 3 XXXX XXXX 4096 Feb  5 18:39 ..
    -rw-r--r-- 1 XXXX XXXX    0 Feb  5 18:56 file2ignore
    drwxr-xr-x 8 XXXX XXXX 4096 Feb  5 19:03 .git
    -rw-r--r-- 1 XXXX XXXX   12 Feb  5 18:57 .gitignore
    -rw-r--r-- 1 XXXX XXXX 8743 Feb  5 19:01 selimovic-compte-rendu.md
    -rw-r--r-- 1 XXXX XXXX   28 Feb  5 18:55 start
  2. Aficher le status de votre repo *

  3. Créez une branche pour développer la réponse de ce point (nommez là mybranch-2.4 par exemple)

  4. Afficher un historique sous forme de graph (a dog) de votre repo

  5. Pourquoi les 2 branches pointent elles sur la même révision ?*

  6. Afficher à nouvea l'historique pour montrer les modifications suite au précédent commit *

  7. Revenir la brache mybranch

  8. Où sont passé vos reponces au point 2.4 ? *

  9. Affichez un historique sous forme de graph (a dog) de votre repo, Que peux ton en dire ?

  10. Revenir sur la branche master

  11. Ajoutez et commitez un fichier (touch new_file)

  12. Revenir sur votre branche mybranch pour completer le compte rendu *

  13. Affichez un historique sous forme de graph (a dog) de votre repo *

3. Merge
  1. Merge depuis head
  2. switcher sur une nouvelle branche mybranch-3.1
  3. ajout un nouveau fichier nommé easy_merge avec la date et l'heure actuelle *
  4. merger la branche mybranch-4.1 sur mybranch
  5. Afficher le status
  6. Pourquoi n'y a t'il aucune modification en cours ? *
  7. Affichez un historique sous forme de graph (a dog) de votre repo et décire l'état courant*
  8. Merge avec modifications
  9. Mergez les modifications de la branche mybranch-2.4 sur mybranch (*echap* :wq *enter* pour sauvegarder le message de commit et quitter)*
  10. Affichez un historique sous forme de graph (a dog) de votre repo *
  11. Merge avec conflit
  12. Céer une nouvelle branche mybranch-3.6
  13. Notez dans le CR la date et l'heure actuelle (avec la commande date par exemple) *
  14. Switchez sur la nouvelle branche et modifiez la réponse précendante dans le CR avec le *
  15. Réalisez le merge de la brache mybranch-3.6 sur mybranch. Le prompt change, pourquoi ? Gerer le conflit et commiter.
  16. 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
  1. Afficher l'historique de votre repo
  2. Ajouter le projet "2017-F2-Forge" comme repository distant *
  3. Lister les branches distantes
  4. Pousser votre branche de votre repo local sur le repos distant *
  5. 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 ?
  6. Supprimer le dossier .git
  7. Faire un git status ?