Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
enseignement:d35:tp:tp1 [2014/01/28 10:50] – modification externe 127.0.0.1enseignement:d35:tp:tp1 [2023/09/20 18:52] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-<texit info>  +====== D35 - TP1 - Premiers pas avec git ======
-author=E. Bruno +
-title=TP1 - Premiers pas avec git  +
-</texit>+
  
-====== TP1 - Premiers pas avec git ======+Pour une présentation rapide de Git lire : [[git:gitminimal]] et [[git:gitavance]]. 
 + 
 +et surtout : https://www.atlassian.com/git/tutorials/comparing-workflows/ 
 + 
 +===== Git dans un entrepôt isolé =====
   - Dans un répertoire ''TEST'' à la racine de votre compte:   - Dans un répertoire ''TEST'' à la racine de votre compte:
     - créer un dossier pour votre projet      - créer un dossier pour votre projet 
-    - en faire un entrepôt git  +    - en faire un entrepôt Git  
-    - Mettre en place un mini projet java qui contient un fichier ''Hello.java'' (le programme Hello World !) dans un paquetage ''test''+    - Mettre en place un mini projet java qui contient une Classe ''Hello'' (le programme Hello World !) dans un paquetage ''fr.univtln.<votrelogin>''
   - A chaque modification afficher le statut   - A chaque modification afficher le statut
   - Ajouter les différents fichiers (staging puis commit)   - Ajouter les différents fichiers (staging puis commit)
   - Afficher le journal    - Afficher le journal 
   - Modifier le fichier java et afficher les différences puis faire un commit.   - Modifier le fichier java et afficher les différences puis faire un commit.
-  - Créer une autre branche de votre projet +  - Créer une autre branche de votre projet et basculer vers cette branche. 
-  - Ajouter des fichiers et faire des modifications dans la nouvelle branches +  - Ajouter des fichiers et faire des modifications dans la nouvelle branches. 
-  - Revenir dans la branche initiale et récupérer les modifications +  - Revenir dans la branche initiale et récupérer les modifications. 
-  - Faire des modifications dans le même fichiers dans les deux branches pour provoquer un conflit +  - "Taguer" la version courante et continuer à faire des modifications. 
-  - Régler le conflit dans la branche initiale+  - Faire un clone du projet à la version taguée.
  
-  - Dans le répertoire ''~/TEST'' clone votre répertoire git d'origine +===== Collaboration "Locale" ===== 
-  - Faite des modifications dans l'ancien et mettez à jour le nouveau +  - Dans le répertoire ''~/TEST'' cloner votre répertoire Git d'origine vers un répertoire "bare" 
-  - Faites l'inverse +  - Créer deux clone du répertoire "bare" 
-  - Créer un troisième projet en clonant le second +  - Faire des modifications dans le premier et mettre à jour le second 
-  - Etudier les fonctions avancées de mise à jour de l'historique : http://git-scm.com/book/fr/Les-branches-avec-Git-Rebaser +  - Faire l'inverse 
-  - "Tagguer" une version courante +  - Faire des modifications dans le même fichier dans les deux projets sans pull préalable 
-  - Tester le plugin git dans eclipse et dans IntelliJ Idea. +pousser un puis l'autre pour provoquer un conflit et régler le conflit.
-===== Correction ===== +
-/** +
-Dans un répertoire TEST à la racine de votre compte, créer un fichier Hello.java (hello world) dans un paquetage test et un repository svn (svnhello)+
  
-  svnadmin create svnhello+===== Collaboration "Distante" ===== 
 +   - vous pouvez travailler en ligne sur github (vient le lien reçu "D35 TP1") il s'agit d'un clone d'un entrepôt de base d'un projet java.  
 +   - Vous pouvez ajouter des remotes d'autres étudiants et s'ils vous donne les droits :  
 +     - Pousser vos modifications. 
 +     - Récupérer les modifications. 
 +     - Sinon faire des pull/request.
  
-Importer le répertoire test en indiquant un message+   - A partir de là travailler tous ensemble sur le même projet :  
 +     - l'accès au repository commun est présenté dans le channel #d35 de slack. 
 +     - chacun peut créer une classe Test **dans son propre paquetage** (avec des login différents) avec une méthode String sayName() qui retourne son login. 
  
-svn import test  file:///home/bruno/TEST/svnhello/test --message "Initial import" +===== Utilisation avancée ===== 
- +  Etudier les fonctions avancées de mise à jour de l'historique http://git-scm.com/book/fr/Les-branches-avec-Git-Rebaser 
-Afficher la revision  +  - Mise en place de gitflow avec Java/Maven 
- +  - https://www.atlassian.com/git/tutorials/comparing-workflows
-  svnlook tree svnhello +  - http://nvie.com/posts/a-successful-git-branching-model
- +  - https://bitbucket.org/atlassian/jgit-flow/wiki/Home
-Afficher l'arborescence +
- +
-  svnlook tree svnhello +
- +
-Afficher les informations sur un fichier +
-  svn info file:///home/bruno/TEST/svnhello/test +
-  svn info file:///home/bruno/TEST/svnhello/test/Hello.java +
- +
-Dans un répertoire ~/TEST/Work faire un ckeckout workingcopy1 et une autre w workigncopy2 +
-  svn checkout file:///home/bruno/TEST/svnhello workingcopy1 +
-  svn checkout file:///home/bruno/TEST/svnhello workingcopy2 +
- +
-Modifier le fichier Hello.java dans workingcopy1 et mettre à jour le repository +
-  svn commit workingcopy1 --message "Affichage mis à jour" +
-  +
-Afficher le message de la revision 2 +
-  svn log -r2 file:///home/bruno/TEST/svnhello +
- +
-Afficher le fichier Hello.java de la revision 1  +
-  svn cat -r1 file:///home/bruno/TEST/svnhello/test/Hello.java +
- +
-Mettre à jour workcopy2 +
-  svn update workingcopy2 +
- +
-Modifier les deux copies, et faire un commit dans chacune. Régler le conflit. +
- +
- +
-Poser une verrou sur Hello depuis working2 et tenter une mise à jour de working1 +
-  svn lock Hello.java +
- +
-Modifier et committer working 1 et créer un patch à partir de la révision précédente. Appliquer le patch à working 1 +
-  Dans working2 +
-   svn cat -r1 file:///home/bruno/TEST/svnhello/test/Hello.java > Hello_5_6.patch +
-  Dans working1 +
-   cat ../../workingcopy2/test/Hello_5_6.patch | patch +
- +
-Créer un fichier readme dont le contenu est mis à jour automatiquement +
-  echo '$Id$ $Rev$ $Date$' > README.txt +
-  svn add README.txt +
-  svn propset svn:keywords "Id Rev Date" README.txt +
- +
-Affecter et afficher la propriété author à Hello +
  
-*/+===== IDE ===== 
 +  - Tester le plugin Git dans eclipse et/ou dans IntelliJ Idea.
  
  {{tag>D35 TP git}}  {{tag>D35 TP git}}
 ---- struct data ---- ---- struct data ----
 +metadata.level       : 
 +metadata.Type        : TP
 +metadata.Nom         : 
 +metadata.Enseignements : D35
 +metadata.Promotions 
 +metadata.Technologies : Git
 +metadata.Thèmes     : VCS
 +metadata.Description : 
 ---- ----