quelques TPs pour pratiquer git
tp-add-by-lines¶
tp-conflict¶
tp-pending-changes¶
tp-amend¶
travail individuel
créer un repo, ajouter un commit avec un
README.mdvideajouter du texte dans le
README.md, mettez ça dans un commitgrâce à
git commit --amend, refaites le commit, et pour cela
retouchez le
README.mdsous vs-codeajoutez la nouvelle modife avec
git addrefaites le commit avec
git commit --amend
vérifiez que vous avez bien 2 commits et pas 3, et que le deuxième contient bien ce qu’il faut
tp-clone-pull¶
nos cours sont publiés sur github, et vous les clonez chez vous
puis pour le cours suivant, le prof publie une nouvelle version du cours
comment faire pour réconcilier votre copie locale avec la nouvelle version du cours ?
et que se passe-t-il alors exactement dans votre copie locale, si vous avez vous-même fait des changements dans les notebooks ?
ce TP demande une courte préparation spécifique par groupe
une fois que c’est prêt vous devrez visiter une URL dans le genre dehttps://github.com/ue12-p25/git-tp-clone-pull-groupe3
à faire par le prof
les instructions pour préparer le TP sont ici README-teacher.md
tp-killing-push¶
vous travaillez à plusieurs dans un repo, et vous n’arrivez pas à pousser un commit ?
c’est sûrement que quelqu’un d’autre a poussé avant vous…
tp-teamwork¶
un tp plus complet où on simule un travail en groupe
à faire en groupes de 3 ou 4
tp-pull-request-fork¶
un TP à faire à deux
élève
Acrée un repo sur github, avec du contenu; le repo est publicpour la suite, c’est essentiellement élève
Bqui bosse, élèveApeut profitablement regarder :)élève
Bclone le repo, fait une modification et la met dans un commitélève
Bessaie de pousser son nouveau commit dans le github deA, mais échoue car il n’a pas les droitsélève
Bdemande à github de lui créer un forkélève
Bpousse son commit dans son fork (il a le droit cette fois)élève
Bcrée (dans le repo deA) un pull requestélève
Aconsulte le pull request, et accepte (merge) le changementon vérifie que la modification de
Best bien dans le repo deA
on recommence en inversant les rôles...
dans l’écran de création du PR, il y a un bouton “compare across forks” qu’il faut cliquer pour pouvoir créer une PR entre deux repos distincts
tp-pull-request-single-repo¶
un TP à faire à deux
élève
Acrée un repo sur github, avec du contenu; le repo est publicpour la suite, c’est essentiellement élève
Bqui bosse, élèveApeut profitablement regarder :)élève
Bclone le repo.élève
Bouvre une nouvelle branchefeature-eleve-bet fait une modification et la met dans un commitélève
Bessaie de pousser son nouveau commit dans le github deA, mais échoue car il n’a pas les droitsélève
Adonne des droits à l’élèveB: via Settings/Collabateurs sur le repository du projet. Trouver l’option Manage access/Add peopleélève
Baccepte l’invitation pour travailler sur le repository de l’élèveAélève
Bpousse son commit et sa branche sur le repository de l’élèveAélève
Bcrée (dans le repo deA) un pull requestélève
Aconsulte le pull request, et accepte (merge) le changementon vérifie que la modification de
Best bien dans le repo deAélève
Apeut effectuer la même procedure en commitant sur la branche qu’il crééfeature-eleve-a
Certains workflows imposent que tous les changements soient fait via une Pull Request. On souhaite alors ‘protéger’ la branche principale main contre les commits directs. Pour ce faire :
élève
Ava dans les Settings/Branches du repository et click sur l’option ‘Add classic branch protection rule’. La branche à protéger est ‘main’. Séléctionner l’option ‘Require a pull request before merging’ et ‘Require a pull request before merging’élève
Aet l’élèveBessaient de pousser un changement/commit directement surmain. Que se passe-t-il ?
tp-class-text¶
un TP à faire à toute la classe
ce TP demande une courte préparation spécifique par groupe
une fois que c’est prêt vous devrez visiter une URL dans le genre dehttps://github.com/ue12-p25/git-tp-class-text-groupe3
à faire par le prof
à destination des avancés, et pour illustrer le cours, voici comment le prof peut faire la préparation pour cet exo, avec le bon numéro de groupe of course
# cloner localement le repo de référence
git clone git@github.com:ue12-p25/git-tp-class-text-template.git
# aller dedans
cd git-tp-class-text-template
# créer le repo sur github - il faut avoir les droits
gh repo create --public ue12-p25/git-tp-class-text-groupe3
# ajouter un remote qui pointe vers ce nouveau repo (vide pour l'instant)
git remote add my-group git@github.com:ue12-p25/git-tp-class-text-groupe3.git
# pousser dedans
git push my-group main