Comment récupérer le dépôt en amont et le faire remplacer le dépôt principal ? Je n'ai qu'une seule branche sur mon repo, qui est master, et j'ai complètement foiré, donc j'ai essentiellement besoin de recommencer à partir de l'amont. Je pense que init fera l'affaire, mais y a-t-il un moyen plus simple ?
Réponses
Trop de publicités?Il y a (au moins) deux choses que vous pouvez faire ici - vous pouvez reclasser le dépôt distant, ou vous pouvez reset --hard
à l'ancêtre commun et ensuite faire un pull, ce qui permettra d'avancer rapidement vers le dernier commit sur le master distant.
Pour être concret, voici une extension simple de la réponse originale de Nevik Rehnel :
git reset --hard origin/master
git pull origin master
NOTE : en utilisant git reset --hard
supprimera tous les changements non validés, et il peut être facile de s'embrouiller avec cette commande si vous êtes nouveau dans git, donc assurez-vous d'avoir une idée de ce qu'elle va faire avant de continuer.
Tout en étant sur la branche master : git reset --hard origin/master
puis faire un peu de nettoyage avec git gc
(plus d'informations à ce sujet dans les pages du manuel)
Mise à jour : Vous devrez probablement aussi faire un git fetch origin
(o git fetch origin master
si vous sólo veulent cette branche) ; cela ne devrait pas avoir d'importance si vous faites cela avant ou après la réinitialisation. (Merci @eric-walker)
Vous pouvez le faire en une seule commande :
git fetch --all && git reset --hard origin/master
Notes :
1 AVERTISSEMENT vous perdrez TOUTES vos modifications locales
2 si vous voulez une branche différente de master
que vous devez utiliser :
git fetch --all && git reset --hard origin/[BRANCH]
3 vous pouvez le diviser en une paire de commandes :
git fetch --all
git reset --hard origin/master