Comment unstage grand nombre de fichiers sans supprimer le contenu

Par accident, j'ai ajouté un grand nombre de fichiers temporaires à l'aide de git add -A

J'ai réussi à unstage les fichiers en utilisant les commandes suivantes et réussi à enlever le sale index.

git ls-files -z | xargs -0 rm -f
git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached

Les commandes ci-dessus sont répertoriés dans le git help rm. Mais malheureusement, mes fichiers ont été supprimés lors de l'exécution, même si j'avais donné l'option de cache. Comment puis-je effacer l'index sans en perdre le contenu?

Également qu'il serait utile si quelqu'un peut expliquer la manière dont cette pipe fonctionnement.

  • rm -f n'est pas une commande git et ne pas avoir un --cached option. Vos fichiers locaux ont été supprimés avant que vous n'exécutiez git rm donc je ne pense pas que vous pouvez légitimement blâmer git rm pour quoi que ce soit.
  • veuillez envisager de modifier la réponse correcte à la très upvoted réponse de Ian Maddox, comme le git reset --hard est ce n'est pas la bonne réponse et en fait de supprimer le contenu. Cela va induire les utilisateurs en erreur - comme il l'a fait de moi.
  • comme Marco dit, aller sur. Cette page reçoit beaucoup de trafic.
  • Ross merci les gars. Fait.
InformationsquelleAutor sarat | 2011-08-18