web-dev-qa-db-fra.com

Git remove directory

J'ai un référentiel sur GitHub ( http://github.com/hrickards/PHP-Crypto ) pour un petit projet sur lequel moi et quelques autres travaillons. Mon environnement de développement est Aptana Studio, et j'utilise le plugin EGit car Aptana est essentiellement Eclipse en dessous. Aujourd'hui, le concepteur a envoyé le code HTML et CSS du site Web avec les images dans un dossier nommé img. Auparavant, les images se trouvaient dans un dossier appelé images. Sans y penser et étant trop paresseux pour mettre à jour le CSS et le HTML, j'ai simplement conservé les images dans le répertoire img et je me suis engagé sur Git. Cependant, l'interface Web GitHub affiche les répertoires img et images, le répertoire images étant vide. J'ai essayé de supprimer le répertoire d'images avec git rm -r images et git rm images, et même mkdir images; git add images; git rm -r images mais quoi que j'essaye j'obtiens le même résultat: fatal: pathspec 'images' did not match any files.

Quelqu'un a-t-il des conseils sur la façon de supprimer des images, ou ai-je mal compris Git ou quelque chose?

39
hrickards

Git ne stocke aucune information sur le répertoire, juste les fichiers qu'il contient. Vous ne pouvez donc pas ajouter ou supprimer des répertoires eux-mêmes; si tu le dis git add images, Git ajoutera tous les fichiers de ce répertoire (qui ne correspondent pas à la liste des ignorés).

Généralement, le seul moyen pour qu'il y ait un répertoire vide est s'il contient réellement un fichier, généralement un fichier caché comme .gitignore.

Vous avez dit que vous voyez un répertoire images sur GitHub, mais je ne le vois pas dans le référentiel auquel vous avez lié. Êtes-vous sûr qu'il est là, et pas seulement un répertoire vide sur votre disque? S'il ne s'agit que d'un répertoire vide sur votre disque, vous pouvez simplement le supprimer à l'aide de rm images; Git n'a pas besoin de le savoir.

41
Brian Campbell

C'est ce que j'utilise, et je pense que vous voudrez aussi. C'est proche des autres réponses, mais demande à git de NE PAS changer les fichiers locaux.

git rm -r -f --cached DirectoryName
  • -r: récursif
  • -f: forcer
  • --cached: appliquer UNIQUEMENT à l'index (zone de transit). Git laisse les copies locales tranquilles.
51
Sk606

essaye ça:

git rm -r -f DirectoryName
38
nizar ouerghi

Le référentiel GitHub lié n'affiche pas le répertoire d'images.

Git ne stocke pas de répertoires vides pour des raisons techniques, essayez donc rm images et supprimez le répertoire images de votre hiérarchie de répertoires locaux.

3
Andrew