This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
2018_2019:s2:td:git [2019/03/16 21:05] blay [Git comme un historique des modifications] |
2018_2019:s2:td:git [2019/03/18 08:16] blay [Références] |
||
---|---|---|---|
Line 51: | Line 51: | ||
+ | ==== 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> | ||
+ | - ENSEMBLES : | ||
+ | - 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 ==== | ||
+ | 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 Partie </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 Partie</code> | ||
+ | - Vérifiez dans quelle branche vous êtes | ||
+ | - Ajoutez à la classe que vous avez créé initialement (Blanc-> Game, ect) ce que vous voulez puis commutez | ||
+ | - Ajoutez à la classe que vous avez créé initialement (Blanc-> Game, ect) ce que vous voulez puis commutez | ||
+ | - 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 ? | ||
+ | - 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 ». | ||
====== 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 | ||