2011-10-14 4 views
11

Besoin d'aide pour trouver quelques workflows communs avec Github. Je viens d'un arrière-plan VS TFS, alors pardonnez-moi.Git: Annuler les modifications locales; git ajouter. + git rm?

Défaire Modifications en attente

Disons que je l'ai cloné d'un dépôt git à mon système de fichiers local. À ce stade, les fichiers locaux du projet correspondent exactement à ce qui se trouve dans le repoistory distant. Puis j'ai décidé d'apporter quelques modifications au code et de changer les versions locales d'un couple de fichiers. Après avoir fait quelques tests, je me suis rendu compte que je voulais annuler mes modifications locales et rétablir les fichiers locaux à ce qu'ils sont dans le repoistory à distance.

Comment annuler ces modifications locales en les restaurant dans les versions actuelles du référentiel?

Commettre tous les changements

Chaque fois que je modifie le contenu des fichiers locaux dans mon clone référentiel, ou ajouter de nouveaux fichiers, et que vous souhaitez pousser les changements, je lance « git add. », « Git commit » avec mes commentaires, alors "git push" à mon maître.

Cependant, lorsque je supprime un fichier localement suivi dans le référentiel, "git add". ne capture pas les changements de RM. Au lieu de cela, je dois "git rm [nom de fichier]" avant de "git commit" pour mettre à jour le dépôt. J'oublie toujours de faire ça.

Y at-il une commande git qui va "git add". et "git rm" tous les fichiers que j'ai supprimés localement, en une seule étape? Après avoir modifié les fichiers locaux et supprimé un couple, je voudrais émettre une seule commande qui capture tous mes changements avant que je "commette git".

Répondre

22

Comment puis-je annuler ces changements locaux, les restaurer aux versions actuelles dans le référentiel? `

git reset --hard 

(cela réinitialiser votre index et répertoire de travail à HEAD)

Y at-il une commande git qui va "git add". et « rm git » tous les fichiers que j'ai supprimés localement, en une seule étape? `

git add -u 

(il ajouter coutume de nouveaux fichiers)

Si vous voulez aussi ajouter de nouveaux fichiers, retirez rm » fichiers ed et modifications de scène aux fichiers:

git add -A 
+0

Je pense que c'est la bonne réponse. Consultez ce lien pour plus d'informations: http://book.git-scm.com/4_undoing_in_git_-_reset,_checkout_and_revert.html – dresende

3

Vous pouvez revenir à votre dernière valide commit (c.-à-copie de l'exemple repo à distance, en tournée) par l'émission:

git reset --hard HEAD 

De plus, je vous suggère de lire la page http://progit.org/2011/07/11/reset.html utile pour mieux comprendre comment réinitialisée travail et quel est l'index, et pourquoi git add et git rm sont des commandes séparées.

Questions connexes