Sur SVN, supprimer quelque chose du système de fichiers directement (plutôt que d'utiliser svn) a créé une charge de maux de tête.
Je n'ai pas trouvé que c'était un problème lors de l'utilisation git
, mais je remarque que git a sa propre rm
implémentation (git rm
).
Quelle est la différence entre rm
et git rm
?
git reset --hard
puis faire une vérification de master pour sortir de l'état de tête détaché parce que je savais que je n'avais pas de changements non validés. Si vous n'avez pas validé vos modifications, vous voudrez peut-être faire un git stash, mais je suis relativement nouveau dans git donc je ne connais pas la commande exacte. Si vous êtes venu ici en 2014 ou après, j'espère que cette réponse vous a été utile.rm
(au lieu degit rm
) et supprimé de nombreux fichiers en l'utilisant, et que maintenant je ne veuxgit
pas les suivre. Existe-t-il un moyen d'annuler les modifications? Je veuxgit
suivre monrm
comme retiré car je ne l'ai pas utiliségit rm
en premier lieu.Suppression de fichiers à l'aide de
rm
n'est pas un problème en soi, mais si vous souhaitez ensuite confirmer que le fichier a été supprimé, vous devrez tout de même faire ungit rm
, donc vous pouvez aussi bien le faire dès le départ.De plus, en fonction de votre shell,
git rm
après avoir supprimé le fichier, vous n'obtiendrez pas de complétion par tabulation, vous devrez donc épeler le chemin vous-même, alors que si vousgit rm
pendant que le fichier existe encore, la complétion par tabulation fonctionnera normalement.la source
git rm
supprimera le fichier de l'index et du répertoire de travail (index uniquement si vous l'avez utilisé--cached
) afin que la suppression soit préparée pour la prochaine validation.la source
Cependant, si vous finissez par utiliser rm au lieu de git rm. Vous pouvez ignorer l'ajout de git et valider directement les modifications en utilisant:
git commit -a
la source
Voici comment vous pouvez supprimer un fichier à l'aide de
rm -f
, puis le supprimer de votre index avecgit rm
Cependant, vous pouvez faire tout cela en une seule fois avec juste
git rm
la source
Lorsque vous utilisez git rm, la suppression fera partie de votre prochain commit. Donc, si vous voulez pousser le changement, vous devez utiliser git rm
la source
En plus de la réponse d'Andy, il existe un utilitaire supplémentaire pour
git rm
:Sécurité : Lorsque vous faites à la
git rm
place derm
, Git bloquera la suppression en cas de divergence entre laHEAD
version d'un fichier et l'index de préparation ou la version de l'arborescence de travail. Ce bloc est un mécanisme de sécurité pour empêcher la suppression des modifications en cours.La sauvegarde :
git rm --dry-run
. Cette option est une sauvegarde qui exécutera lagit rm
commande mais ne supprimera pas réellement les fichiers. Au lieu de cela, il affichera les fichiers qu'il aurait supprimés.la source