web-dev-qa-db-fra.com

Comment ignorer les modifications locales et extraire les dernières nouvelles du référentiel GitHub

J'ai un répertoire sur ma machine où je stocke tous les projets de GitHub. J'ai ouvert l'un d'entre eux et apporté des modifications localement sur ma machine. Le projet a été gâché et je souhaite maintenant ignorer toutes les modifications apportées et extraire la dernière version du référentiel. Je suis relativement nouveau dans GitHub, avec Git Shell.

La commande git pull serait-elle suffisante? Dois-je faire quelque chose de plus pour ignorer les modifications apportées localement? Quelqu'un peut-il aider?

45
Coding Duchess

git reset est ce que vous voulez, mais je vais ajouter quelques éléments supplémentaires que vous pourriez trouver utiles et que les autres réponses ne mentionnent pas.

git reset --hard HEAD réinitialise vos modifications au dernier commit que votre référent local a suivi. Si vous avez fait un commit, que vous ne l'envoyiez pas dans GitHub et que vous vouliez le jeter également, voyez la réponse de @ absiddiqueLive .

git clean -df supprimera tous les nouveaux fichiers ou répertoires que vous avez éventuellement ajoutés, au cas où vous voudriez les jeter. Si vous n'en avez pas ajouté, vous n'avez pas à exécuter ceci.

git pull (ou si vous utilisez git Shell avec le client GitHub) git sync recevra les nouvelles modifications de GitHub.

Editer de manière future: J'ai mis à jour mon git Shell la semaine dernière et j'ai remarqué que la commande git sync n'est plus définie par défaut. Pour mémoire, taper git sync était équivalent à git pull && git Push en bash. Je le trouve toujours utile, donc c'est dans ma base.

66
Cody

Exécuter les commandes ci-dessous

git log

De là, vous obtiendrez votre dernière clé de hachage Push commit

git reset --hard <your commit hash key>
16
absiddiqueLive

Si vous avez déjà validé les modifications, il vous faudrait annuler les modifications .

Si vous ne vous êtes pas encore engagé, faites une nouvelle vérification git checkout .

10
General_Twyckenham

Outre les réponses ci-dessus, il existe toujours la méthode de la terre brûlée.

rm -R <folder>

dans Windows Shell, la commande est la suivante:

rd /s <folder>

Ensuite, vous pouvez simplement extraire le projet à nouveau:

git clone -v <repository URL> 

Cela supprimera définitivement toutes les modifications locales et extraira les dernières en date du référentiel distant. Soyez prudent avec rm -R car il supprimera vos bonnes données si vous vous trompez de chemin. Par exemple, certainement pas faire:

rm -R /

edit: Pour corriger l'orthographe et mettre en évidence.

4
ScottM