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 22:02] blay [Synchronisation de votre répertoire en groupe] |
2018_2019:s2:td:git [2019/03/25 09:29] blay [Synchronisation de votre répertoire en groupe] |
||
---|---|---|---|
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 57: | Line 73: | ||
- Visualisez les références distantes <code> git remote </code> | - 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> | - 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> |
- | - 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) | * 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 ** | - ** TOUS ** | ||
Line 80: | Line 95: | ||
- Rouge 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 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éé 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 | ||