Travailler en groupe (git-group-2)
Le chef de projet crée un dépôt sur GitHub et ajoute les collaborateurs.
Dans notre cas le dépôt s'appelle git-goup-2
, créé par mikhawa
, c'est moi:
https://github.com/WebDevCF2m2023/git-goup-2
Chaque collaborateur crée un fork du dépôt du chef de projet en cliquant sur le bouton Fork
en haut à droite de la page du dépôt :
Le Owner
du fork est le collaborateur qui l'a créé. Décochez la case Copy the main branch only
pour copier toutes les branches du dépôt :
Chaque collaborateur clone son fork sur son ordinateur :
git clone git@github.com:VotrePseudoGithub/git-goup-2.git
cd git-goup-2
git remote -v
# Affiche :
origin git@github.com:VotrePseudoGithub/git-goup-2.git (fetch)
origin git@github.com:VotrePseudoGithub/git-goup-2.git (push)
Vous êtes prêt à travailler sur le projet grace à votre fork qui est une copie du dépôt original. Vous êtes le propriétaire de votre fork !
Vous pourrez le modifier à votre guise sans affecter le dépôt original.
Pour pouvoir récupérer les modifications apportées au dépôt original par les autres collaborateurs, il faut créer un lien entre votre fork et le dépôt original.
git remote add upstream git@github.com:WebDevCF2m2023/git-goup-2.git
Vous devez voir apparaître le dépôt original dans la liste des dépôts distants :
git remote
origin
upstream
C'est également grâce à ce lien que vous pourrez proposer vos modifications au dépôt original.
Pour travailler sur une fonctionnalité, il faut toujours créer une branche :
# Créer la branche et se positionner dessus
git checkout -b mabranche1
C'est un raccourci de la commande :
# Créer la branche
git branch mabranche1
# Se positionner sur la branche
git switch mabranche1
C'est sur cette branche que vous allez travailler. Vous pouvez la nommer comme vous voulez. Il est d'usage de nommer la branche en fonction de la fonctionnalité que vous allez développer.
Vous pouvez maintenant faire des modifications sur le projet. Par exemple, ajouter un fichier index.html
et le commiter :
touch index.html
git add index.html
git commit -m "Ajout du fichier index.html"
Une fois que vous avez terminé de travailler sur votre branche, vous pouvez pousser les modifications sur votre fork :
git push origin mabranche1
Une fois que vous avez poussé vos modifications sur votre fork, vous pouvez créer une Pull Request
pour proposer vos modifications au dépôt original :
Vous pouvez ajouter un commentaire pour expliquer vos modifications et cliquer sur le bouton Create pull request
:
Une fois que vous avez créé votre Pull Request
, vous pouvez récupérer les modifications apportées au dépôt original par les autres collaborateurs.
Pour cela, il faut se positionner sur la branche main
de votre fork et récupérer les modifications du dépôt original :
git checkout main
# ou git switch main
git pull upstream main
Vous pouvez ensuite vous positionner sur votre branche et fusionner la branche main
avec votre branche :
git checkout mabranche1
# ou git switch mabranche1
git merge main
Si vous n'aviez pas de conflits, vous pouvez pousser les modifications sur votre fork :
git push origin mabranche1
Si vous avez des conflits, vous devez les résoudre en modifiant les fichiers concernés. Vous devez ensuite ajouter les modifications et commiter :
git add index.html
git commit -m "Résolution des conflits"
Vous pouvez ensuite pousser les modifications sur votre fork :
git push origin mabranche1
Une fois que vous avez résolu les conflits, votre Pull Request
aura été mise à jour automatiquement.
Vous pouvez ajouter un commentaire pour expliquer les modifications apportées et cliquer sur le formulaire Leave a comment
.
Le propriétaire du dépôt original pourra ensuite fusionner votre Pull Request
avec la branche main
du dépôt original.
Si vous avez des modifications à apporter, vous pouvez les faire sur votre branche et pousser les modifications sur votre fork. La Pull Request
sera mise à jour automatiquement.
Une fois que vous avez terminé de travailler sur votre branche, vous pouvez retourner sur la branche main
de votre fork et récupérer les modifications du dépôt original :
git checkout main
# ou git switch main
git pull upstream main
Vous pouvez ensuite créer une nouvelle branche pour travailler sur une autre fonctionnalité :
git checkout -b mabranche2
# ou git switch -b mabranche2
Vous pouvez supprimer une branche une fois que vous avez fusionné la branche avec la branche main
du dépôt original :
git branch -d mabranche1
Vous pouvez également supprimer la branche sur votre fork :
git push origin --delete mabranche1
ou depuis Github :
Je vous conseille de garder vos branches sur github ET en local, surtout si celles-ci ne sont pas intégrées au travail final !
En effet, ce sont vos preuves de travail que l'on ne peut pas vous voler, et qui vous permettent de prouver que vous avez travaillé sur le projet !
A chaque fois que vous travaillerez sur le projet, vous devrez récupérer les modifications apportées au dépôt original par les autres collaborateurs.
Une fois que vous avez fusionné votre branche avec la branche main
du dépôt original, vous pouvez récupérer les modifications apportées au dépôt original par les autres collaborateurs.
Pour cela, il faut se positionner sur la branche main
de votre fork et récupérer les modifications du dépôt original :
git checkout main
# ou git switch main
git pull upstream main
Puis mettez votre branche main
à jour sur votre fork
:
git push origin main