2009-12-22 7 views
38

J'ai un dépôt sur GitHub (http://github.com/hrickards/PHP-Crypto) pour un petit projet moi et quelques autres travaillent sur. Mon environnement de développement est Aptana Studio, et j'utilise le plugin EGit car Aptana est fondamentalement Eclipse en dessous. Aujourd'hui, le concepteur a envoyé le HTML et CSS pour le site Web avec les images dans un dossier nommé img. Auparavant, les images étaient dans un dossier appelé images. Ne pensant pas à cela et étant trop paresseux pour mettre à jour le CSS et HTML, j'ai simplement gardé les images dans le répertoire img et commit à Git. Cependant, l'interface Web de GitHub affiche à la fois 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'essaie j'obtiens le même résultat: fatal: pathspec 'images' did not match any files.Git supprimer le répertoire

Est-ce que quelqu'un a reçu des conseils sur la façon de supprimer des images, ou est-ce que je ne comprends pas Git ou quelque chose comme ça?

Répondre

39

Git ne stocke aucune information sur le répertoire, seulement les fichiers qu'il contient. Donc, vous ne pouvez pas ajouter ou supprimer des répertoires eux-mêmes; Si vous dites git add images, Git ajoutera tous les fichiers dans ce répertoire (qui ne correspondent pas à la liste des ignorés).

Généralement, la seule façon d'avoir 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 repo auquel vous avez lié. Êtes-vous sûr qu'il est là, et pas seulement un répertoire vide sur votre disque? Si c'est juste un répertoire vide sur votre disque, vous pouvez simplement le supprimer en utilisant rm images; Git n'a pas besoin de savoir à ce sujet.

+0

Vous avez raison - ce n'est pas là maintenant. Ce n'était certainement pas sur mon disque, donc je peux seulement supposer que mon navigateur, Chrome, avait caché la page ou quelque chose même quand je l'ai rafraîchi. Il a l'habitude de le faire. Merci pour l'aide de toute façon! – hrickards

+0

@hrickards Juste un conseil, si vous voulez forcer le chrome (je pense que cela fonctionne dans d'autres navigateurs mais je ne l'ai pas testé) pour recharger complètement la page, appuyez sur [CTRL] + F5. –

3

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

Git ne stocke pas les répertoires vides pour des raisons techniques. Essayez simplement rm images et supprimez le répertoire images de la hiérarchie de votre répertoire local.

+0

Salut, comme dit plus haut, je pense que Chrome doit avoir mis en cache la page même quand je F5 ou quelque chose. Merci pour l'aide de toute façon! – hrickards

39

essayez ceci:

git rm -r -f DirectoryName 
+15

il supprime physiquement! – quux

+23

'git rm -r -f --canneau DirectoryName' <<< utilise ceci pour laisser la copie locale seule! – Sk606

+2

@ Sk606: pourriez-vous l'afficher comme réponse séparée? Vous obtiendriez des upvotes (au moins de moi), parce que c'est la vraie solution :) – Sk8erPeter

41

C'est ce que je l'utilise, et je pense que vous voulez aussi bien. Il est proche des autres réponses, mais demande à git de ne PAS changer les fichiers locaux.

git rm -r -f --cached DirectoryName 
  • -r: récursive
  • -f: Force
  • --cached: appliquer seulement à l'index (zone de stockage intermédiaire). Git laisse les copies locales seules.