User Tools

Site Tools


2017_2018: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
2017_2018:s3:methodo:td:git [2017/09/27 11:43]
blay [Les tags]
2017_2018:s3:methodo:td:git [2018/01/15 16:30] (current)
blay [Ressources]
Line 1: Line 1:
 ====== TD sur le contrôle de version (Hands-on Git) ====== ====== TD sur le contrôle de version (Hands-on Git) ======
-Basé sur le TD élaboré par** Cyril Ceccinel** +Basé sur le TD élaboré par** Cyril Cecchinel** 
  
 Et l'aide de [[https://​openclassrooms.com/​courses/​gerez-vos-codes-source-avec-git|Open Classroom]] Et l'aide de [[https://​openclassrooms.com/​courses/​gerez-vos-codes-source-avec-git|Open Classroom]]
Line 39: Line 39:
 A Noter, que si vous travaillez sous Github ou BitBucket, en général, on crée le dépôt sur le site puis on le clone. A Noter, que si vous travaillez sous Github ou BitBucket, en général, on crée le dépôt sur le site puis on le clone.
  
-  - Créer un répertoire ''​ myRepo'' ​+  - Créer un répertoire ''​ myRepo'' ​(c'est le répertoire où vous voulez travailler).
   - Initialiser le dépôt : <​code>​ git init </​code>​   - Initialiser le dépôt : <​code>​ git init </​code>​
  
Line 55: Line 55:
   - Ajoutez le fichier ''​Menu.txt''​ comme git vous l'a dit : <​code>​ git add Menu.txt</​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''​.   - 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 "Message" </​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?+  - 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 ? ​   - 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>​ ))   - 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>​ ))
Line 101: Line 101:
 Jusqu’à présent, vous avez pu expérimenter Git pour gérer localement vos versions. Nous allons maintenant nous intéresser au développement collaboratif de fichier sources. Pour cette partie, mettez vous avec votre groupe de méthodologie. Jusqu’à présent, vous avez pu expérimenter Git pour gérer localement vos versions. Nous allons maintenant nous intéresser au développement collaboratif de fichier sources. Pour cette partie, mettez vous avec votre groupe de méthodologie.
  
 +  - Si votre dépôt est vide, UN étudiant : 
 +       ​- ​ Récupérer l'​adresse **https** de votre dépôt (onglet dépôt à droite) ​
 +       - En vous plaçant dans le bon répertoire :   <​code> ​
 +git init
 +touch readme.txt
 +git add readme.txt
 +git commit -m '​Initializing depot repository'​
 +git remote add origin URL
 +git push -u origin master
 +</​code>​
 +     - 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>​
   - (TOUS) En suivant les[[ https://​forge-iutinfo.unice.fr/​|instructions de la Forge IUT]], clonez le dépôt git associé à votre groupe. ​   - (TOUS) En suivant les[[ https://​forge-iutinfo.unice.fr/​|instructions de la Forge IUT]], clonez le dépôt git associé à votre groupe. ​
                 - Récupérer l'​adresse **https** de votre dépôt (onglet dépôt à droite) ​                 - Récupérer l'​adresse **https** de votre dépôt (onglet dépôt à droite) ​
                 - Cloner <​code>​ git clone URL</​code>​                 - Cloner <​code>​ git clone URL</​code>​
 +  -  Placez vous dans le dépot.
   - Chaque personne du groupe participe :    - Chaque personne du groupe participe : 
        - **(Personne A)**         - **(Personne A)** 
Line 116: Line 129:
 </​code>​ </​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>​              - 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)** Synchroniser votre dépôt git avec la commande <​code>​ git pull </​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)    - (Un développeur autre que A) 
         - Modifiez le fichier index.html afin d’ajouter du texte entre les balises body.          - Modifiez le fichier index.html afin d’ajouter du texte entre les balises body. 
Line 136: Line 151:
 Dans le cadre de cette matière, nous utiliserons que des tags légers. Pour plus d’informations sur le mécanisme de tags annotés, voir les ressources. Dans le cadre de cette matière, nous utiliserons que des tags légers. Pour plus d’informations sur le mécanisme de tags annotés, voir les ressources.
  
-  - Reprenez votre fichier « Menu.txt » et apportez-y des modifications. La nouvelle version obtenue correspondra à la carte qui sera publiée au guide Michelin 2017. Pour marquer cette importance, nous allons associer le tag « michelin » au prochain commit : Créez une étiquette ‘michelin17’ +  - Reprenez votre fichier « Menu.txt » et apportez-y des modifications. La nouvelle version obtenue correspondra à la carte qui sera publiée au guide Michelin 2017. Pour marquer cette importance, nous allons associer le tag « michelin » au prochain commit : Créez une étiquette ‘michelin17’ ​<​code>​ git tag michelin17</​code>​ 
-  - Listez les étiquettes disponibles+  - Listez les étiquettes disponibles ​<​code>​ git tag </​code>​
  
 Attention ! ​ Les tags ne sont pas poussés automatiquement sur un serveur distant. Il faut demander explicitement à pousser les étiquettes après les avoir créées localement (cf. cheat sheet) ou utiliser l’option –-tags ​ Attention ! ​ Les tags ne sont pas poussés automatiquement sur un serveur distant. Il faut demander explicitement à pousser les étiquettes après les avoir créées localement (cf. cheat sheet) ou utiliser l’option –-tags ​
Line 145: Line 160:
 ==== Création/​Synchronisation ==== ==== Création/​Synchronisation ====
  
- +  * Création d’un repo Git local 
-  - Création d’un repo Git local +<​code> ​$ git init myRepo ​
-$ git init myRepo+
 Initialized empty Git repository in /​private/​tmp/​myRepo/​.git/​ Initialized empty Git repository in /​private/​tmp/​myRepo/​.git/​
- +</​code> ​ 
-  ​Cloner un repo Git distant +  ​Cloner un repo Git distant 
-$ git clone <URL du repo Git à cloner> +<​code>  ​$git clone <URL du repo Git à cloner> ​</​code>​ 
- +  ​Ajouter une cible (ie. Un serveur distant) – cette opération est implicite si le repo a été initialisé avec git init 
-  ​Ajouter une cible (ie. Un serveur distant) – cette opération est implicite si le repo a été initialisé avec git init +<​code>​$ git remote add origin <URL du repo Git></​code>​ 
-$ git remote add origin <URL du repo Git> +  ​Pousser les commits locaux de la branche master sur un serveur distant (origin) 
- +<​code> ​$ git push master origin</​code>​ 
-  ​Pousser les commits locaux de la branche master sur un serveur distant (origin) +  ​Se synchroniser avec un serveur distant (ie. Récupérer les commits distants) 
-$ git push master origin +<​code> ​$ git pull</​code>​
- +
-  ​Se synchroniser avec un serveur distant (ie. Récupérer les commits distants) +
-$ git pull+
  
 ==== Commiter des modifications ==== ==== Commiter des modifications ====
  
  
-  ​Afficher l’état courant du repo local +  ​Afficher l’état courant du repo local 
-$ git status+<​code> ​$ git status ​</​code>​
  
-  - Versionner un nouveau fichier +   ​* ​Versionner un nouveau fichier 
-$ git add <Fichier à ajouter>+<​code> ​$ git add <Fichier à ajouter> </code>
  
-  - Commiter un état courant avec un message de commit +   ​* ​Commiter un état courant avec un message de commit 
-$ git commit -m "​Premier commit"​+<​code> ​$ git commit -m "​Premier commit"​
 [master (root-commit) b992814] Premier commit [master (root-commit) b992814] Premier commit
  1 file changed, 5 insertions(+)  1 file changed, 5 insertions(+)
  ​create mode 100644 Menu.txt  ​create mode 100644 Menu.txt
- +</​code>​ 
-  ​- ​Afficher l’historique du repo +   * Afficher l’historique du repo 
-$ git log +<​code> ​$ git log 
- + </​code>​
 ==== Utiliser des branches ==== ==== Utiliser des branches ====
  
Line 220: Line 231:
 </​code>​ </​code>​
   * Pousser tous les tags sur un serveur distant   * Pousser tous les tags sur un serveur distant
-git push origin --tags+<​code> ​git push origin --tags ​</​code>​
  
 ==== Ressources ==== ==== Ressources ====
Line 230: Line 241:
   * A successful git branching model : http://​nvie.com/​posts/​a-successful-git-branching-model/​   * A successful git branching model : http://​nvie.com/​posts/​a-successful-git-branching-model/​
   * L’étiquetage :​ https://​git-scm.com/​book/​fr/​v1/​Les-bases-de-Git-%C3%89tiquetage   * L’étiquetage :​ https://​git-scm.com/​book/​fr/​v1/​Les-bases-de-Git-%C3%89tiquetage
 +  * [[https://​stackoverflow.com/​questions/​2745076/​what-are-the-differences-between-git-commit-and-git-push/​2745097#​2745097|What are the differences between “git commit” and “git push”?]]
  
 // That’s all folks // That’s all folks
  
2017_2018/s3/methodo/td/git.1506505386.txt.gz · Last modified: 2017/09/27 11:43 by blay