Aller au contenu principal

Démarrer depuis le dépôt du prof

Contexte

Vous voulez baser votre travail sur un dépôt distant, mais vous n'avez pas les droits d'accès en écriture. Vous n'êtes pas intéressé à faire des pull requests ou des contributions, simplement suivre le projet et y ajouter vos propres modifications sur votre propre dépôt distant.

Ce scénario est courant lorsqu'un professeur met à disposition un dépôt distant pour un travail pratique.

Solution simple

Si vous êtes sur la même plateforme que le dépôt du prof (par exemple, GitHub), vous pouvez simplement dupliquer (fork) le dépôt. Cela créera une copie du dépôt dans votre propre compte, et vous aurez les droits d'accès en écriture sur cette duplication. Vous pouvez ensuite cloner votre duplication et commencer à travailler dessus.

Pour plus de détail, consultez la documentation de la plateforme que vous utilisez (par exemple, GitHub - Fork a repo).

Le reste de ce document est pour les cas où vous ne pouvez pas ou ne voulez pas dupliquer le dépôt du prof, mais que vous voulez quand même travailler à partir de celui-ci.

Ajouter le dépôt du prof

D'abord, vous devez cloner le dépôt distant sur votre machine locale. Par exemple :

git clone https://github.com/archambaultv-prof/git-merge.git

Par défaut, Git a nommé le dépôt distant origin lors du clonage. Mais il serait intéressant de le renommer pour éviter toute confusion. En effet, origin est le nom par défaut et il devrait être celui sur lequel vous avez les droits d'accès en écriture.

La première étape consiste donc à renommer le dépôt distant origin en upstream et ajuster le nom de la branche main :

git remote rename origin upstream
git branch -m main upstream-main

Ajouter votre propre dépôt distant

Ensuite, pour ajouter votre dépôt distant comme remote, utilisez la commande git remote add :

attention

Assurez-vous de remplacer username par votre nom d'utilisateur GitHub et git-repo par le nom de votre dépôt.

git remote add origin https://github.com/username/git-repo.git
git fetch --all

Maintenant, vous avez deux dépôts distants : upstream pour le dépôt d'origine et origin pour votre propre dépôt. Vous pouvez vérifier cela avec :

git remote -v
attention

Lorsque vous utilisez git fetch, cela met à jour seulement les références du dépôt origin. Pour mettre à jour les références du dépôt upstream, vous devez utiliser git fetch upstream ou git fetch --all pour mettre à jour les deux dépôts distants.

Ajouter une branche main locale

Vous avez maintenant un dépôt distant upstream qui pointe vers le dépôt du prof et un dépôt distant origin qui pointe vers votre propre dépôt. Cependant, vous n'avez pas encore de branche main locale. L'objectif est que la branche main locale parte de la branche upstream-main, mais qu'elle soit suivie par la branche origin/main pour que vous puissiez pousser vos modifications sur votre propre dépôt distant.

Pour créer une branche main locale qui suit la branche upstream-main, vous pouvez utiliser la commande suivante :

git switch -c main upstream-main

Cette commande crée une nouvelle branche main à partir de upstream-main et la positionne comme la branche courante. Pour indiquer à Git que cette branche main doit suivre la branche origin/main, vous pouvez utiliser :

git branch --set-upstream-to=origin/main