-
Clement MALETERRE authoredClement MALETERRE authored
- Cours Forge ZZ2 F2 2017
- Infos étudiant :
- TP 1
- 1. Les basiques
- Commentaire
- Commentaire
- Commentaire
- Résultat
- Commentaire
- Commentaire
- Résultat
- Commentaire
- Commentaire
- Résultat
- Commentaire
- Commentaire
- Commentaire
- Résultat
- Commentaire
- Commentaire
- Résultat
- Commentaire
- Résultat
- 2. Les branches
- Commentaire
- Commentaire
- 3. Merge
- Commentaire
- Commentaire
- Commentaire
- 4. Remote
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
- Créer un repository git
git init TP1-Git
Commentaire
Creation du repos TP1-Git
- 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) - 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
- 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
- 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
- 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
- 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
- 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
- Il ne devrait y avoir que deux entrées dans l'historique pourquoi ?
*
Le commit Q1.5 à été modifié par le commit Q1.7.
- 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.
- Créer un nouveau fichier : file2ignore
touch file2ignore
Commentaire
Création du fichier file2ignore.
- 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")
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Revenir la brache
mybranch
git checkout BeuvotMaleterre
- 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
- 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
- Revenir sur la branche master
git checkout master
- 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"
- Revenir sur votre branche
mybranch
pour completer le compte rendu*
git checkout BeuvotMaleterre git add * git commit -m "2.10 Un commit aléatoire"
- Affichez un historique sous forme de graph (
a dog
) de votre repo*
git log --all --decorate --oneline --graph ---
3. Merge
- Merge depuis head
- switcher sur une nouvelle branche
mybranch-3.1
git checkout -b BeuvotMaleterre-3.1 --- Switched to a new branch 'BeuvotMeleterre-3.1'
- 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
- merger la branche
mybranch-4.1
surmybranch
git checkout BeuvotMaleterre git merge BeuvotMaleterre-3.1 --- Updating 2eeb732..07fe811 Fast-forward Beuvot-Maleterre-Compte-Rendu.md | 28 ++++++++++++++++++++++++++++ easy_merge | 1 + 2 files changed, 29 insertions(+) create mode 100644 easy_merge
- Afficher le status
git status --- On branch BeuvotMaleterre nothing to commit, working tree clean
- Pourquoi n'y a t'il aucune modification en cours ?
*
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
- Affichez un historique sous forme de graph (
a dog
) de votre repo et décire l'état courant*
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
- Merge avec modifications
- Mergez les modifications de la branche
mybranch-2.4
surmybranch
(*echap* :wq *enter*
pour sauvegarder le message de commit et quitter)*
git merge BeuvotMaleterre-2.4 ---
- Affichez un historique sous forme de graph (
a dog
) de votre repo*
git log --all --decorate --oneline --graph ---
- Merge avec conflit
- Céer une nouvelle branche
mybranch-3.6
git branch BeuvotMaleterre-3.6 --- Switched to a new branch 'BeuvotMaleterre-3.6'
- Notez dans le CR la date et l'heure actuelle (avec la commande
date
par exemple)*
> date > fic_date > git add fic_date > git commit -m"3.6.2 ajout de fic_date" - Switchez sur la nouvelle branche et modifiez la réponse précendante dans le CR avec le
*
git checkout BeuvotMaleterre-3.6 date > fic_date git add fic_date git commit -m"3.6.2 ajout de fic_date"
- Réalisez le merge de la brache
mybranch-3.6
surmybranch
. Le prompt change, pourquoi ? Gerer le conflit et commiter.
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 6508e335] 3.6.4
- Supprimer les branches de feature et afficher toutes les branches restantes, affichez un historique sous forme de graph (
a dog
) de votre repo*
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
-
Afficher l'historique de votre repo
Ctrl c + ctrl v de ailleurs :D
-
Ajouter le projet "2017-F2-Forge" comme repository distant
*
git remote add origin https://clmaleterr1@gitlab.isima.fr/mazenovi/2017-F2-Forge.git
-
Lister les branches distantes
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
-
Pousser votre branche de votre repo local sur le repos distant
*
$ 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
-
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 ?
-
Supprimer le dossier .git
-
Faire un git status ?