Quelques exercices de (ré)vision sur l'utilisation de git
ps : la branche main
par défaut s'appelait avant master
donc ne soyez pas surpris si vous tomber dessus...
- Cloner le dépôt
- Créer un fichier ayant pour nom votre username
- L'ajouter et le commiter avec le message "révision - exercice1"
- Push
- Faire un fork du repo
- Créer une branche avec votre username
- Ajouter un fichier le commiter et pusher sur la branche
- Sur la même branche créer deux fichier nommés
test1.py
ettest2.py
- Ajouter les deux fichiers au staging avec
git add
(sans les commit) - Vous vous rendez compte que vous ne voulez pas commiter
test2.py
.
À l'aide degit reset HEAD nom_ficher
enlevertest2.py
du stagging - commit test1.py avec le message que vous voulez
- créer un dossier data
- faire un
git status
- créer un fichier
.gitignore
- et mettre data/ dedans
- refaire un
git status
et assurez vous que git ne considère plus le fichier
2 par 2 on se prend la main
- Mettez vous par deux
- L'un des membre du groupe (personne A) crée un dépôt sur github
- A invite l'autre personne (personne B) à la liste des contributeurs du repo sur github (dans paramètres)
- A crée un fichier et l'ajoute dans le dépôt
- A commit et push.
Une fois que c'est fait
- B clone le dépôt puis modifie le fichier créé par A.
- B commit et push
- Pendant ce temps A modifie le fichier qu'il a créé, le commit (sans le push).
- Une fois que B a bien fait son push, A tente de push et devrait avoir une erreur.
- A suit les indications de l'erreur et un conflit devrait être apparu !
Quand un même ficher est modifié par deux personnes différents, git ne sait pas (sauf dans rares cas) quelles modifications conserver.
- A ouvre le fichier ayant le conflit. Discuter à deux quelle modification garder
- A modifie le fichier en conséquence
- A add le fichier modifié au staging, le commit
- A peut désormais pusher
Vous pouvez si vous le souhaitez refaire les étapes en inversant les rôles.
Dans le premier exercice on a vu les branches : vous avez créé une branche et fait des modifications dessus.
- Retourner dans le dépôt où vous avez créé la branche. Lister les fichiers avec
dir
ouls
- Avec la commande
git checkout
retournez surmain
et vérifier que le fichier que vous aviez ajouter sur votre branche n'existe plus
En général on crée des branches pour ne pas faire de modification directement sur la branche main
qui est utilisée pour les déploiement
Mais quand on est content d'une modification effectuée sur une branche on veut la fusionner dans main
.
- Se mettre dans la branche
main
- Fusionner la branche où vous aviez fait les modifications dans
main
à l'aide degit merge
- Vérifier que les modifications sont bien intégrées dans
main
- Push vers le dépôt distant
- Vous pouvez lire cette doc
Dans cet exercice on va voir la différence entre fetch
et pull
.
Mettez vous encore à deux comme l'exercice précédent.
- A créé une branche nommée "test_fetch"
- B fait un pull de la branche et fait une modification dessus puis la push.
- A ne va pas faire un pull mais va faire un git fetch.
Que se passe-t-il ? - Taper la commande
git branch -a
.
Que sont les branches "remotes" ? - Merge la branche
origin/test_fetch
En faisant le fetch et le merge vous venez de faire exactement un pull :
pull = fetch + merge