User Tools

Site Tools


2018_2019:s3:methodo:td:git

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
2018_2019:s3:methodo:td:git [2018/09/04 15:19]
blay [Tags]
2018_2019:s3:methodo:td:git [2018/09/05 15:06] (current)
blay [Les tags]
Line 66: Line 66:
 Voir ici pour cette partie : [[2018_2019:​s3:​methodo:​td:​git:​lignescommandes|Il faut lire plus loin que le 1.]]  Voir ici pour cette partie : [[2018_2019:​s3:​methodo:​td:​git:​lignescommandes|Il faut lire plus loin que le 1.]] 
  
-==== Git comme historique des modifications ==== 
  
-   ​- ​ Créer un fichier ''​Menu.txt''​ contenant les plats de votre restaurant favori, ligne par ligne. <​code>​ 
-Salade norvégienne 
-Œufs fauchés 
-Steak tartare 
-Filet de dorade 
-Profiteroles 
-</​code>​ 
-  - Comment interprétez-vous le résultat de la commande suivante <​code>​ git status </​code> ​ 
-  - Ajoutez le fichier ''​Menu.txt''​ comme git vous l'a dit : <​code>​ git add Menu.txt</​code> ​ 
-  - Réinterprétez le résultat de la commande ''​git status''​. 
-  - Le fichier ''​Menu.txt''​ est maintenant prêt à être versionné. <​code>​ git commit -m "​construction de la carte" </​code>​ **ou** <​code>​ git commit </​code>​ ((Un éditeur s'​ouvre qui dépend de votre configuration. S'il ne vous convient pas, vous pouvez le configurer par exemple <​code>​ git config --global core.editor emacs </​code>​)) Quel message avez-vous en retour? 
-  - Que donne la commande ''​git status''​ ? ​ 
-  - Apportez quelques modifications au fichier ''​Menu.txt''​. Essayez de commiter ces modifications. Que se passe-t-il ?​ En vous aidant de la documentation accessible en tapant ''​git help commit'',​ versionnez ces modifications (avec un message décrivant le changement) (( Au lieu d'un git add suivi d'un git commit vous pouvez préférer <​code>​ git commit -a -m "ajout des aubergines"</​code>​ )) 
-  - Affichez l’historique des modifications du dépôt. <​code>​ git log </​code>​ Et pour voir les modifications apportées par le dernier commit <​code>​ git log -p  -1 </​code>​ et savoir qui fait quoi <​code>​ git log --stat </​code>​ ou <​code>​ git log --pretty=format:"​%h - %an, %ar : %s"</​code>​ **etc.** 
-  - En utilisant ''​git diff''​ ,​ visualisez les modifications effectuées entre le premier commit et le second commit. Par exemple <​code>​ git diff 71cfcd6 0c24491 </​code>​ Attention l'​ordre des commits modifie le résultat (un- devient un +). 
-  - Modifiez plusieurs fois le Menu afin d’en avoir plusieurs versions. ​ 
-  - Le dernier plat ajouté ne vous plait finalement pas. Il existe deux manières de revenir à une version antérieure :​ de manière temporaire ou définitive. 
-  - Exécuter ''​git log''​ et récupérez le hash (HASH) du commit où vous souhaitez revenir en arrière. 
-         - Pour revenir en arrière de manière temporaire, exécutez <​code>​ git checkout HASH</​code>​ 
-              -  Vérifiez que votre fichier Menu.txt est dans son état antérieur. ​ 
-               - Revenez au dernier commit (HEAD) en exécutant <​code>​ git checkout master</​code>​ 
-         - Pour revenir en arrière de manière définitive,​ et donc supprimer tout ce que vous avez fait depuis ce moment : <​code>​ git reset --hard HASH </​code>​ 
-               - Dans ''​git log'',​ vérifiez que tout ce que vous aviez effectué depuis ce commit a été effacé. ​ 
  
   
  
-==== Branches de développement ==== 
- 
-Sauf indication contraire, vous ajouterez les plats séquentiellement dans le menu (les uns après les autres). 
- 
-Vous êtes chargé(e) d’introduire des plats végétariens dans le menu du restaurant. Ces plats n’ayant pas encore été validés par la cuisine et la direction du restaurant, vous souhaitez travailler sur la carte sans casser la carte existante. La notion de branche permet de passer instantanément d’une version « stable » (branche « master » créée par défaut) du projet à une « version en cours de développement » (n’importe quelle autre branche que « master ») 
- 
-  - Jusqu'​ici vous avez travaillé sur une seule branche « master » : c’est la branche principale, celle qui en général contient le « vrai » code source de votre projet. Pour voir toutes vos branches <​code>​git branch </​code> ​ 
-  - Créez une branche « vegetarien » dans votre dépôt Git. <​code>​ git branch vegetarien </​code> ​ 
-  - Vérifiez que vous êtes bien dans la branche Master par la commande <​code>​git branch </​code> ​ 
-  - Basculez dans la branche vegetarien <​code>​ git checkout vegetarien</​code> ​ 
-  - Vérifiez dans quelle branche vous êtes 
-  - Ajoutez deux/trois plats végétariens au menu et commitez au fur et à mesure les modifications. ​ 
-  - Fermer votre fichier. 
-  - Observez l’historique des modifications du dépôt, que remarquez-vous ?​ 
-  - Revenez à la carte principale (branche « master ») et observez l’historique des modifications,​ que remarquez-vous ?​ 
-  - Ajoutez un plat non-végétarien au menu de la branche master. Commitez la modification. 
-  - Le cuisinier et le directeur du restaurant sont satisfaits de vos propositions de plat et souhaitent maintenant les ajouter au menu principal. Fusionnez (« merge ») la branche « vegetarien » à la branche « master ». <​code>​git merge vegetarien </​code> ​ Que se passe-t-il ?​ Ouvrez le fichier Menu.txt et vérifiez que la fusion s'est bien passée. 
-  -  Créez une branche « japonais » <​code>​ git checkout -b japonais </​code>​ 
-  - Ajoutez des plats japonais en commitant au fur et à mesure les modifications et retirer des plats de viande. 
-  - Revenez sur la branche « master » et fusionnez la branche « japonais ». Regardez le contenu du fichier Menu.txt et l’historique de modifications du dépôt. Y a-t-il eu un conflit ? Pourquoi ? 
-  - Si vous avez un conflit, ​ résolvez le conflit de manière à ajouter tous les plats situés entre les balises de conflit (<<<<<​ et >>>>>​). Commitez le changement (et donc la fusion) en tapant « git commit –a » 
-  - Modifiez le contenu de la branche japonais. 
-  - Supprimer la branche japonais. Que se passe-t-il? <​code>​ git branch -d japonais </​code>​ 
-    - Supprimez les branches « vegetarien » et « japonais ». 
- 
-==== Synchronisation de votre répertoire ==== 
- 
-Hormis la première étape, vous avez expérimenté Git pour gérer localement vos versions. ​ 
-Nous allons maintenant nous intéresser au développement collaboratif de fichier sources. ​ 
- 
-     - Visualisez les références distantes <​code>​ git remote </​code> ​ 
-/* La nouvelle référence à ''​origin''​ vient de la ligne de commande ''​git remote add [nomcourt] [url]''​ 
-*/ 
-     - Visualisez les URL associées aux références distantes <​code>​git remote -v </​code>​ 
-     ​- Chaque personne du groupe participe :  
-       - **(Personne A)**  
-             - Créez un fichier index.html reprenant le code ci-dessous :​ <code html> 
-<​html>​ 
-<​head>​ 
-<​title>​Demo</​demo>​ 
-</​head>​ 
-<​body>​ 
-</​body>​ 
-</​html>​ 
-</​code>​ 
-             - Ajoutez le fichier au dépôt git et commitez le fichier. Envoyez ensuite le commit vers le dépôt distant : <​code>​ git push origin master</​code>​ 
-       - **(Tous sauf  A)**  
-            - Visualiser l'​état du dépôt distant <​code>​ git remote show origin </​code>​ 
-            - Synchroniser votre dépôt git avec la commande <​code>​ git pull </​code>​ 
-  - (Un développeur autre que A)  
-        - Modifiez le fichier index.html afin d’ajouter du texte entre les balises body.  
-        - Commitez les modifications et envoyez-les vers le dépôt distant. 
-  - (TOUS) Synchroniser votre dépôt git avec la commande ''​git pull''​. 
-  - (Personne A)  
-        - Modifiez le titre de la page Web et  
-        - Commitez/​envoyez les modifications. 
-  - (Personne B) (SANS SYNCHRONISER LE DEPOT) ​ 
-        - Modifiez le titre de la page Web  
-        - Commitez/​envoyez les modifications. Que se passe-t-il ?​ Remédiez au conflit. 
  
  
Line 275: Line 192:
  
 Maintenant Maintenant
-[[2018_2019:​s3:​methodo:​td:​env|{{fa>​angle-double-right?​50|Gestion de version}}]]** Je peux aborder la** [[2018_2019:​s3:​methodo:​td:​env|gestion de projet]]+[[2018_2019:​s3:​methodo:​td:​env|{{fa>​angle-double-right?​50|Gestion de version}}]]** Je peux aborder la** [[2018_2019:​s3:​methodo:​td:​ci|Intégration continue]]
  
 ==== Ressources ==== ==== Ressources ====
2018_2019/s3/methodo/td/git.1536067173.txt.gz · Last modified: 2018/09/04 15:19 by blay