Newer
Older
# Cours Forge ZZ2 F2 2017
# Infos étudiant :
Par binôme Nom Prénom:
## 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
Initialized empty Git repository in C:/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 .
```
> On commite cette étape Q1.3
```
$ git commit -m "Q1.3"
[master (root-commit) b0b4b05] Q1.3
1 file changed, 258 insertions(+)
create mode 100644 cr.md
```
$ git status
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 commit -m "Q1.5"
[master 6866275] Q1.5
1 file changed, 7 insertions(+), 3 deletions(-)
```
$ git log
commit 80f71a0487d0b236a26bfd9e540582b68cad7943
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:15:48 2018 +0100
Q1.5
commit 3ec344ecfd24df41ca97396f27b52ec570297ce3
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:02:43 2018 +0100
Q1.3
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) `*`
```
> On commite cette étape Q1.7 en amendant le commit précédent
```
$ git commit -m "Q1.7" --amend
[master abfd2d9] Q1.7
Date: Mon Feb 12 21:15:48 2018 +0100
1 file changed, 27 insertions(+), 8 deletions(-)
rename cr.md => REDA_YOUSSEF.md (91%)
```
$ git log
commit abfd2d91c6fff3d02fd132e77c012cc695b2ec84
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:15:48 2018 +0100
Q1.7
commit 3ec344ecfd24df41ca97396f27b52ec570297ce3
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:02:43 2018 +0100
Q1.3
> **NOTE:** On remarque bien que le commit Q1.5 est remplacer par celui de Q1.7
0. Il ne devrait y avoir que deux entrées dans l'historique pourquoi ? `*`
> On doit y avoir exactement deux entrées dans l'historique `Q1.3` et `Q1.7` et cela parcequ'on avait remplacer le commit `Q1.5` par `Q1.7` en ajoutant `--amend` à la fin de la commande `commit`
```
$ git add *
$ git commit -m "Q1.9"
[master a38f03f] Q1.9
1 file changed, 24 insertions(+), 3 deletions(-)
0. Créer un nouveau fichier, nommé start, contenant la date et l'heure actuelle `*`
```
$ touch start
$ date > start
$ git add .
warning: LF will be replaced by CRLF in start.
The file will have its original line endings in your working directory.
```
> On commite cette étape Q1.10
```
$ git commit -m "Q1.10"
[master 51a5add] Q1.10
2 files changed, 14 insertions(+), 5 deletions(-)
create mode 100644 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: REDA_YOUSSEF.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 `*`
```
$ touch .gitignore
$ echo file2ignore > .gitignore
$ git add *
The following paths are ignored by one of your .gitignore files:
file2ignore
Use -f if you really want to add them.
```
> On commite cette étape Q1.13
```
$ git commit -m "Q1.13"
[master 715a4ee] Q1.13
1 file changed, 26 insertions(+), 6 deletions(-)
0. Lister le contenu du repertoire courant, afficher le status et la log
```
$ git ls-files
REDA_YOUSSEF.md
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: REDA_YOUSSEF.md
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
no changes added to commit (use "git add" and/or "git commit -a")
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
```
$ git log
commit 715a4ee8285da57cd0debd02ef0d2756d7e9408a
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 22:05:17 2018 +0100
Q1.13
commit 51a5addb0f97faae02a4e72054fb4af151e41fd5
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:53:17 2018 +0100
Q1.10
commit a38f03f0e4779c9aec92bd1bd6dce92c18f03723
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:40:41 2018 +0100
Q1.9
commit abfd2d91c6fff3d02fd132e77c012cc695b2ec84
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:15:48 2018 +0100
Q1.7
:...skipping...
commit 715a4ee8285da57cd0debd02ef0d2756d7e9408a
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 22:05:17 2018 +0100
Q1.13
commit 51a5addb0f97faae02a4e72054fb4af151e41fd5
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:53:17 2018 +0100
Q1.10
commit a38f03f0e4779c9aec92bd1bd6dce92c18f03723
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:40:41 2018 +0100
Q1.9
commit abfd2d91c6fff3d02fd132e77c012cc695b2ec84
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:15:48 2018 +0100
Q1.7
commit 3ec344ecfd24df41ca97396f27b52ec570297ce3
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:02:43 2018 +0100
Q1.3
```
0. Avant de commiter affichez les modifications par rapport à la précédente révision ? `*`
```
$ git diff
diff --git a/REDA_YOUSSEF.md b/REDA_YOUSSEF.md
index 26d82fc..50663bf 100644
--- a/REDA_YOUSSEF.md
+++ b/REDA_YOUSSEF.md
@@ -147,14 +147,70 @@ Use -f if you really want to add them.
```
> On commite cette étape Q1.15
```
$ git commit -m "Q1.15"
$ git commit -m "Q1.15"
[master 715a4ee] Q1.15
1 file changed, 26 insertions(+), 6 deletions(-)
```
0. Lister le contenu du repertoire courant, afficher le status et la log
$ git ls-files
REDA_YOUSSEF.md
start
```
```
$ git log
:...skipping...
diff --git a/REDA_YOUSSEF.md b/REDA_YOUSSEF.md
index 26d82fc..50663bf 100644
--- a/REDA_YOUSSEF.md
+++ b/REDA_YOUSSEF.md
@@ -147,14 +147,70 @@ Use -f if you really want to add them.
```
git commit -m "Q1.16"
$ git commit -m "Q1.16"
[master 715a4ee] Q1.16
1 file changed, 26 insertions(+), 6 deletions(-)
0. Lister le contenu du repertoire courant, afficher le status et la log
$ git ls-files
REDA_YOUSSEF.md
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: REDA_YOUSSEF.md
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
no changes added to commit (use "git add" and/or "git commit -a")
```
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
$ git log
commit 715a4ee8285da57cd0debd02ef0d2756d7e9408a
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 22:05:17 2018 +0100
Q1.13
commit 51a5addb0f97faae02a4e72054fb4af151e41fd5
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:53:17 2018 +0100
Q1.10
commit a38f03f0e4779c9aec92bd1bd6dce92c18f03723
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:40:41 2018 +0100
Q1.9
commit abfd2d91c6fff3d02fd132e77c012cc695b2ec84
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:15:48 2018 +0100
Q1.7
:...skipping...
commit 715a4ee8285da57cd0debd02ef0d2756d7e9408a
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 22:05:17 2018 +0100
Q1.13
commit 51a5addb0f97faae02a4e72054fb4af151e41fd5
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:53:17 2018 +0100
Q1.10
commit a38f03f0e4779c9aec92bd1bd6dce92c18f03723
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:40:41 2018 +0100
Q1.9
commit abfd2d91c6fff3d02fd132e77c012cc695b2ec84
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:15:48 2018 +0100
Q1.7
commit 3ec344ecfd24df41ca97396f27b52ec570297ce3
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:02:43 2018 +0100
Q1.3
```
0. Avant de commiter affichez les modifications par rapport à la précédente révision ? `*`
$ git add *
The following paths are ignored by one of your .gitignore files:
file2ignore
Use -f if you really want to add them.
```
##### 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 reda_youssef
$ git checkout reda_youssef
Switched to branch 'reda_youssef'
M REDA_YOUSSEF.md
0. Lister les branches locales et les fichiers présent dans le répertoire courant `*`
```
```
```
$ git ls-files
REDA_YOUSSEF.md
start
```
```
$ git add .
warning: LF will be replaced by CRLF in .gitignore.
The file will have its original line endings in your working directory.
```
$ git commit -m "Q2.2"
[reda_youssef 03c3017] Q2.2
2 files changed, 31 insertions(+), 4 deletions(-)
create mode 100644 .gitignore
$ git status
On branch reda_youssef
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: REDA_YOUSSEF.md
no changes added to commit (use "git add" and/or "git commit -a")
```
$ git commit -m "Q2.3"
[reda_youssef 71592a8] Q2.3
1 file changed, 21 insertions(+), 3 deletions(-)
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
```
*71592a8 (HEAD -> reda_youssef-2.4, reda_youssef) Q2.3
*03c3017 Q2.2
*717b390 (master) Q1.15
*715a4ee Q1.13
*51a5add Q1.10
*a38f03f Q1.9
*abfd2d9 Q1.7
*3ec344e Q1.3
0. Pourquoi les 2 branches pointent elles sur la même révision ?`*`
> On remarque que les 2 branches `reda_youssef` et `reda_youssef-2.4` pointent sur la même révision puisque il n'y pas de `commit`
```
$ git add .
$ git commit -m "Q2.4.2"
[reda_youssef-2.4 12bae9c] Q2.4.2
1 file changed, 186 insertions(+), 14 deletions(-)
0. Afficher à nouveau l'historique pour montrer les modifications suite au précédent commit `*`
*commit 12bae9c (HEAD -> reda_youssef-2.4)
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 23:00:27 2018 +0100
*commit 71592a8 (reda_youssef)
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 22:21:41 2018 +0100
*commit 03c3017
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 22:19:47 2018 +0100
*commit 717b390 (master)
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 22:14:02 2018 +0100
*commit 12bae9c (HEAD -> reda_youssef-2.4)
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 23:00:27 2018 +0100
*commit 71592a8 (reda_youssef)
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 22:21:41 2018 +0100
*commit 03c3017
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 22:19:47 2018 +0100
*commit 717b390 (master)
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 22:14:02 2018 +0100
*commit 715a4ee
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 22:05:17 2018 +0100
*commit 51a5add
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 21:53:17 2018 +0100
*commit a38f03f
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 21:40:41 2018 +0100
*commit abfd2d9
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 21:15:48 2018 +0100
*commit 3ec344e
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
Date: Mon Feb 12 21:02:43 2018 +0100
> On commite cette étape Q2.4.3
```
$ git add .
$ git commit -m "Q2.4.3"
[reda_youssef-2.4 3dd3708] Q2.4.3
1 file changed, 10 insertions(+), 11 deletions(-)
0. Pourquoi les 2 branches pointent elles sur la même révision ?`*`
[reda_youssef-2.4 d72c9c1] Q2.4.4
1 file changed, 3 insertions(+), 3 deletions(-)
0. Afficher à nouveau l'historique pour montrer les modifications suite au précédent commit `*`
```
*commit d72c9c1 (HEAD -> reda_youssef-2.4)
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 23:04:18 2018 +0100
*commit 3dd3708
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 23:03:02 2018 +0100
*commit 12bae9c
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 23:00:27 2018 +0100
*commit 71592a8 (reda_youssef)
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 22:21:41 2018 +0100
*commit d72c9c1 (HEAD -> reda_youssef-2.4)
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 23:04:18 2018 +0100
*commit 3dd3708
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 23:03:02 2018 +0100
*commit 12bae9c
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 23:00:27 2018 +0100
*commit 71592a8 (reda_youssef)
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 22:21:41 2018 +0100
*commit 03c3017
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 22:19:47 2018 +0100
*commit 717b390 (master)
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 22:14:02 2018 +0100
*commit 715a4ee
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 22:05:17 2018 +0100
*commit 51a5add
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 21:53:17 2018 +0100
*commit a38f03f
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 21:40:41 2018 +0100
*commit abfd2d9
|Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
|Date: Mon Feb 12 21:15:48 2018 +0100
*commit 3ec344e
Author: NIDABRAHIM Youssef <youssef.nidabrahim@um5s.net.ma>
(END)
```
> On commite cette étape Q2.4.5
```
$ git add .
$ git commit -m "Q2.4.5"
[reda_youssef-2.4 f94d5dd] Q2.4.5
1 file changed, 41 insertions(+), 10 deletions(-)
$ git checkout reda_youssef
Switched to branch 'reda_youssef'
> Les réponces au point 2.4 sont dans l'autre branche `reda_youssef-2.4`
```
$ git add .
$ git commit -m "Q2.6"
[reda_youssef 30c07dd] Q2.6
1 file changed, 4 insertions(+), 1 deletion(-)
0. Affichez un historique sous forme de graph (`a dog`) de votre repo, Que peux ton en dire ?
```
*30c07dd (HEAD -> reda_youssef) Q2.6
| *02a31d5 (reda_youssef-2.4) Q2.4.5
| *d72c9c1 Q2.4.4
| *3dd3708 Q2.4.3
| *12bae9c Q2.4.2
*71592a8 Q2.3
*03c3017 Q2.2
*717b390 (master) Q1.15
*715a4ee Q1.13
*51a5add Q1.10
*a38f03f Q1.9
*abfd2d9 Q1.7
*3ec344e Q1.3
> **NOTE:** D'après le graphe, on remarque bien les commites effectuer dans la branche `reda_youssef-2.4`
0. Revenir sur la branche master
```
git checkout master
```
0. Ajoutez et commitez un fichier (touch new_file)
```
touch new_file
git add .
git commit -m "Q2.9"
```
0. Revenir sur votre branche `mybranch` pour completer le compte rendu `*`
```
$ git checkout reda_youssef
Switched to branch 'reda_youssef'
```
> On commite cette étape Q2.10
```
$ git add .
$ git commit -m "Q2.10"
[reda_youssef ca0e5da] Q2.10
1 file changed, 5 insertions(+), 1 deletion(-)
0. Affichez un historique sous forme de graph (`a dog`) de votre repo `*`
```
*ca0e5da (HEAD -> reda_youssef) Q2.10
*f50a0e6 Q2.6
| *b2acb20 (master) Q2.9
| | *02a31d5 (reda_youssef-2.4) Q2.4.5
| | *d72c9c1 Q2.4.4
| | *3dd3708 Q2.4.3
| | *12bae9c Q2.4.2
*717b390 Q1.15
*715a4ee Q1.13
*51a5add Q1.10
*a38f03f Q1.9
*abfd2d9 Q1.7
*3ec344e Q1.3
```
> On commite cette étape Q2.11
```
$ git add .
$ git commit -m "Q2.11"
[reda_youssef 6dae183] Q2.11
1 file changed, 27 insertions(+), 1 deletion(-)
```
##### 3. Merge
0. Merge depuis head
0. switcher sur une nouvelle branche `mybranch-3.1`
```
$ git checkout -b reda_youssef-3.1
Switched to a new branch 'reda_youssef-3.1'
0. ajout un nouveau fichier nommé easy_merge avec la date et l'heure actuelle `*`
```
$ touch easy_merge
$ date > easy_merge
```
> On commite cette étape Q3.1.2
$ git add .
$ git commit -m "Q3.1.2"
[reda_youssef-3.1 3288cda] Q3.1.2
2 files changed, 9 insertions(+), 3 deletions(-)
create mode 100644 easy_merge
```
0. merger la branche `mybranch-3.1` sur `mybranch`
$ git checkout reda_youssef
Switched to branch 'reda_youssef'
```
```
$ git merge reda_youssef-3.1
Updating f258f21..4a165c0
Fast-forward
REDA_YOUSSEF.md | 21 +++++++++++++++------
easy_merge | 1 +
2 files changed, 16 insertions(+), 6 deletions(-)
$ git status
On branch reda_youssef
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: REDA_YOUSSEF.md
no changes added to commit (use "git add" and/or "git commit -a")
> Normalement, on n'aura pas de modification à commiter après un merge puisqu'ils sont déjà commiter dans la branche `reda_youssef-3.1`
$ git commit -m "Q3.3"
[reda_youssef b73a302] Q3.3
1 file changed, 21 insertions(+), 5 deletions(-)
0. Affichez un historique sous forme de graph (`a dog`) de votre repo et décire l'état courant`*`
```
*b73a302 (HEAD -> reda_youssef) Q3.3
*4a165c0 (reda_youssef-3.1) Q3.1.2
*f258f21 Q2.11
*ca0e5da Q2.10
*f50a0e6 Q2.6
| *b2acb20 (master) Q2.9
| | *02a31d5 (reda_youssef-2.4) Q2.4.5
| | *d72c9c1 Q2.4.4
| | *3dd3708 Q2.4.3
| | *12bae9c Q2.4.2
*717b390 Q1.15
*715a4ee Q1.13
*51a5add Q1.10
*a38f03f Q1.9
*abfd2d9 Q1.7
*3ec344e Q1.3
```
> **NOTE:** On voit clairement que les commites de la branche `reda_youssef-3.1` sont ajouter à notre branche `reda_youssef`
```
$ git add .
$ git commit -m "Q3.4"
[reda_youssef 09aa3ac] Q3.4
1 file changed, 33 insertions(+), 5 deletions(-)
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)`*`
```
$ git merge reda_youssef-2.4
Auto-merging REDA_YOUSSEF.md
Merge made by the 'recursive' strategy.
REDA_YOUSSEF.md | 236 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 219 insertions(+), 17 deletions(-)
```
> On commite cette étape Q3.5.1
```
$ git add .
$ git commit -m "Q3.5.1"
[reda_youssef 04680c8] Q3.5.1
1 file changed, 8 insertions(+), 2 deletions(-)
0. Affichez un historique sous forme de graph (`a dog`) de votre repo `*`
```
*04680c8 (HEAD -> reda_youssef) Q3.5.1
*563d694 Merge branch 'reda_youssef-2.4' into reda_youssef
| *02a31d5 (reda_youssef-2.4) Q2.4.5
| *d72c9c1 Q2.4.4
| *3dd3708 Q2.4.3
| *12bae9c Q2.4.2
.* |cbc5756 Q3.4
.* |b73a302 Q3.3
.* |4a165c0 (reda_youssef-3.1) Q3.1.2
.* |f258f21 Q2.11
.* |ca0e5da Q2.10
.* |f50a0e6 Q2.6
*717b390 Q1.15
*715a4ee Q1.13
*51a5add Q1.10
*a38f03f Q1.9
*abfd2d9 Q1.7
*3ec344e Q1.3
```
> On commite cette étape Q3.5.2
```
$ git add .
$ git commit -m "Q3.5.2"
[reda_youssef 1c24ed3] Q3.5.2
1 file changed, 35 insertions(+), 4 deletions(-)
0. Merge avec conflit
0. Céer une nouvelle branche `mybranch-3.6`
```
$ git branch reda_youssef-3.6
Created a new branch 'reda_youssef-3.6'
M REDA_YOUSSEF.md
0. Notez dans le CR la date et l'heure actuelle (avec la commande `date` par exemple) `*`
```
$ date >> REDA_YOUSSEF.md
```
> On commite cette étape Q3.6.2
```
$ git add .
$ git commit -m "Q3.6.2"
[reda_youssef 493cb2e] Q3.6.2
1 file changed, 22 insertions(+), 6 deletions(-)
0. Switchez sur la nouvelle branche et modifiez la réponse précendante dans le CR avec le `*`
```
$ git checkout reda_youssef_3.6
$ date >> REDA_YOUSSEF.md
> On commite cette étape Q3.6.3
```
$ git add .
$ git commit -m "Q3.6.3"
[reda_youssef-3.6 66764c5] Q3.6.3
1 file changed, 6 insertions(+), 2 deletions(-)
0. Réalisez le merge de la brache `mybranch-3.6` sur `mybranch`. Le prompt change, pourquoi ? Gerer le conflit et commiter.
```
$ git checkout reda_youssef
Switched to branch 'reda_youssef'
M REDA_YOUSSEF.md
$ git merge reda_youssef-3.6
Auto-merging REDA_YOUSSEF.md
CONFLICT (content): Merge conflict in REDA_YOUSSEF.md
Automatic merge failed; fix conflicts and then commit the result.
> **NOTE:** Le prompt change puisque les deux branches ont modifié la même chose
```
$ git add .
$ git commit -m "Q3.6.4"
[reda_youssef eef8621] Q3.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 `*`
```
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
$ git branch -d reda_youssef-3.6
Deleted branch reda_youssef-3.6 (was 25af935).
$ git branch -d reda_youssef-3.1
Deleted branch reda_youssef-3.1 (was 4a165c0).
$ git branch -d reda_youssef-2.4
Deleted branch reda_youssef-2.4 (was 02a31d5).
```
```
$ git log --all --graph --decorate --oneline
*eef8621 (HEAD -> reda_youssef) Q3.6.4
|\
| *25af935 Q3.6.3
.* |28c47b8 Q3.6.2
|/
*1c24ed3 Q3.5.2
*04680c8 Q3.5.1
*563d694 Merge branch 'reda_youssef-2.4' into reda_youssef
|\
| *02a31d5 Q2.4.5
| *d72c9c1 Q2.4.4
| *3dd3708 Q2.4.3
| *12bae9c Q2.4.2
.* |cbc5756 Q3.4
.* |b73a302 Q3.3
.* |4a165c0 Q3.1.2
.* |f258f21 Q2.11
.* |ca0e5da Q2.10
.* |f50a0e6 Q2.6
|/
*71592a8 Q2.3
*03c3017 Q2.2
| *b2acb20 (master) Q2.9
|/
*717b390 Q1.15
*715a4ee Q1.13
*51a5add Q1.10
*a38f03f Q1.9
*abfd2d9 Q1.7
*3ec344e Q1.3
```
> On commite cette étape Q3.7
```
$ git add .
$ git commit -m "Q3.7"
[reda_youssef 914b6e2] Q3.7
1 file changed, 47 insertions(+), 4 deletions(-)
```
##### 4. Remote
0. Afficher l'historique de votre repo
```
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
$ git log --all --graph --decorate --oneline
*3732bd6 (HEAD -> reda_youssef) Q3.7
*eef8621 Q3.6.4
|\
| *25af935 Q3.6.3
.* |28c47b8 Q3.6.2
|/
*1c24ed3 Q3.5.2
*04680c8 Q3.5.1
*563d694 Merge branch 'reda_youssef-2.4' into reda_youssef
|\
| *02a31d5 Q2.4.5
| *d72c9c1 Q2.4.4
| *3dd3708 Q2.4.3
| *12bae9c Q2.4.2
.* |cbc5756 Q3.4
.* |b73a302 Q3.3
.* |4a165c0 Q3.1.2
.* |f258f21 Q2.11
.* |ca0e5da Q2.10
.* |f50a0e6 Q2.6
|/
*71592a8 Q2.3
*03c3017 Q2.2
| *b2acb20 (master) Q2.9
|/
*717b390 Q1.15
*715a4ee Q1.13
*51a5add Q1.10
*a38f03f Q1.9
*abfd2d9 Q1.7
*3ec344e Q1.3
0. Ajouter le projet "2017-F2-Forge" comme repository distant `*`
```
$ git remote add origin https://mobenchraa@gitlab.isima.fr/mazenovi/2017-F2-Forge.git
$ git remote show https://mobenchraa@gitlab.isima.fr/mazenovi/2017-F2-Forge.git
0. Pousser votre branche de votre repo local sur le repos distant `*`
$ git add .
$ git commit -m "Q4.4"
$ git push origin reda_youssef
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, pourquoi alors que le push de toute votre branche est faite en une seule fois ?
> Avec git, les fichiers ne sont jamais tracé mais plutôt leurs modifications