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
:
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
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