This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
2018_2019:s2:td:git [2019/03/16 21:03] blay [Définition de l'environnement] |
2018_2019:s2:td:git [2019/03/25 09:46] blay [Branches de développement] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Introduction à GIT ====== | ====== Introduction à GIT ====== | ||
+ | <note tip>Cet énoncé a été conçu pour des groupes qui n'ont pas vraiment commencé à utiliser leur dépôt git. | ||
+ | Il est donc possible que certaines actions soient inutiles. | ||
+ | </note> | ||
===== Définition de l'environnement ===== | ===== Définition de l'environnement ===== | ||
- Adresse de gitlab : https://git-iutinfo.unice.fr/ | - Adresse de gitlab : https://git-iutinfo.unice.fr/ | ||
- Vous désactivez la vérification SSL <code> git config --global http.sslVerify false </code> | - Vous désactivez la vérification SSL <code> git config --global http.sslVerify false </code> | ||
- | - Suivez les instructions du dépôt (si vous ne les voyez plus : [[2018_2019:s2:td:git:depot|2018_2019:s2:td:git:depot]] | + | - Suivez les instructions du dépôt (si vous ne les voyez plus :[[2018_2019:s2:td:git:depot|2018_2019:s2:td:git:depot]] |
Pour les étudiants qui utilisent leur ordi perso, il est possible que vous ayez besoin de, ouvrir un Git CMD en administrateur, puis taper la commande suivante: | Pour les étudiants qui utilisent leur ordi perso, il est possible que vous ayez besoin de, ouvrir un Git CMD en administrateur, puis taper la commande suivante: | ||
<code> git config --system --unset credential.helper</code> | <code> git config --system --unset credential.helper</code> | ||
- | ===== Git comme un historique des modifications ===== | + | <note warning>TODO GIT INGONE</note> |
- | Chaque étudiant du groupe a une tâche particulière, chacun choisit sa couleur : Blanc, Bleu, Vert, Jaune, Rouge | + | |
+ | |||
+ | |||
+ | |||
+ | ===== Gitignore ===== | ||
+ | - Un des étudiants du groupe de TD ajoute le fichier {{:2018_2019:s2:td:gitignore.zip|.gitignore}} dans votre répertoire courant, i.e. | ||
+ | - Dézipper le fichier. | ||
+ | - <code> git add .gitignore</code> | ||
+ | - <code>git commit -a -m "ajout du .gitignore" </code> | ||
+ | - <code>git push</code> | ||
+ | - Tous les étudiants du groupe pour partir de la même version | ||
+ | - <code>git pull</code> | ||
+ | ===== Git comme un historique des modifications ===== | ||
+ | **Chaque étudiant du groupe a une tâche particulière, chacun choisit sa couleur : Blanc, Bleu, Vert, Jaune, Rouge** | ||
- Créer un fichier contenant une classe vice en fonction de votre couleur (public class X {}) | - Créer un fichier contenant une classe vice en fonction de votre couleur (public class X {}) | ||
* Blanc : Game (Partie) | * Blanc : Game (Partie) | ||
Line 45: | Line 61: | ||
- Exécuter ''git log'' et récupérez le hash (HASH) du commit où vous souhaitez revenir en arrière. | - 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> | - 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. | + | - Vérifiez que votre fichier est dans son état antérieur. |
- Revenez au dernier commit (HEAD) en exécutant <code> git checkout master</code> | - 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> | - 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> | ||
Line 51: | Line 67: | ||
+ | ==== Synchronisation de votre répertoire en groupe ==== | ||
+ | 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> | ||
+ | - Visualisez les URL associées aux références distantes <code>git remote -v </code> | ||
+ | - BLANC envoie son code vers le dépôt distant : <code> git push origin master</code> | ||
+ | * Cette commande signifie : git push [nom-distant] [nom-de-branche]. Ici, nous souhaitons pousser votre branche master vers le serveur origin (pour rappel, cloner un dépôt définit automatiquement ces noms pour vous) | ||
+ | - ** TOUS ** | ||
+ | - Visualiser l'état du dépôt distant <code> git remote show origin </code> | ||
+ | - ** TOUS ** | ||
+ | - Synchroniser votre dépôt git avec la commande <code> git pull </code> | ||
+ | - ** TOUS ** | ||
+ | - Chacun pousse son code sur le dépôt distant <code> git push origin master</code> et si vous avez un souci... pensez à vous mettre à jour. | ||
+ | - Chacun : | ||
+ | * Bleu ajoute à ''Game'' l'attribut "Player black" | ||
+ | * Vert ajoute à ''Game'' l'attribut "Move[] moves" | ||
+ | * Blanc ajoute à ''GameManager'' l'attribut "Game[] games" | ||
+ | * Jaune ajoute à ''GameManager'' l'attribut "IA[] ias" | ||
+ | * Rouge ajoute à ''GameManager'' la méthode ''Game createGame()'' | ||
+ | * Tous commitent en local | ||
+ | - Là vous faîtes ensemble et dans l'ordre en vous aidant : | ||
+ | - Bleu pousse sur le serveur distant. (Pour lui c'est facile ! ) | ||
+ | - Vert tente de pousser... Remédiez au conflit. | ||
+ | - Blanc pousse sur le serveur distant. Cool ! | ||
+ | - Jaune pousse sur le serveur distant .... | ||
+ | - Rouge pousse sur le serveur distant... | ||
+ | ==== Branches de développement ==== | ||
+ | <note important>Cette partie n'est pas insdispensable à la gestion de votre projet tutoré de S2, à moins que votre groupe en ai décidé autrement ;-) </note> | ||
+ | |||
+ | Nous allons travailler avec une branche chacun. | ||
+ | |||
+ | Les caractéristiques n'ayant pas encore été validées par votre client, vous souhaitez travailler sur celles-ci sans casser la version 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> | ||
+ | - Chacun : | ||
+ | - Créez une branche de votre couleur <C> dans votre dépôt Git. <code> git branch C </code> | ||
+ | - Vérifiez que vous êtes bien dans la branche Master par la commande <code>git branch </code> | ||
+ | - Basculez dans la branche de C<code> git checkout C</code> | ||
+ | - Vérifiez dans quelle branche vous êtes | ||
+ | - Ajoutez à la classe que vous avez créée initialement (Blanc-> Game, ect) ce que vous voulez puis commitez | ||
+ | - Fermez votre fichier. | ||
+ | - Observez l’historique des modifications du dépôt, que remarquez-vous ? | ||
+ | - Revenez à la branche « master » et observez l’historique des modifications, que remarquez-vous ? | ||
+ | - Vous souhaitez ajouter vos modifications à la branche master. Fusionnez (« merge ») la branche « C » à la branche « master ». <code>git merge C </code> Vérifiez que la fusion s'est bien passée. | ||
+ | - Si vous avez un conflit, résolvez le conflit, pour cela dans le fichier en cause, identifiez les codes entre les balises de conflit (<<<<< et >>>>>). | ||
+ | - Commitez le changement (et donc la fusion) en tapant « git commit –a » | ||
====== Références ====== | ====== Références ====== | ||
+ | http://marklodato.github.io/visual-git-guide/index-en.html | ||
+ | |||
https://rogerdudler.github.io/git-guide/index.fr.html | https://rogerdudler.github.io/git-guide/index.fr.html | ||