2009-08-13 8 views
299

La commande supprime le fichier dans mon système. Je voulais dire pour supprimer seulement le fichier de Git-dépôt.Comment puis-je créer un fichier sans le supprimer du disque?

Comment puis-je supprimer le fichier d'un référentiel Git, sans supprimer le fichier dans mon système?

+0

l'enlever des précédents commits ou du dernier? –

+0

@Nick D. La question l'a laissée ouverte. –

+0

@Masi, si vous voulez l'enlever des commits précédents ça va devenir un peu plus complexe - assurez-vous de demander spécifiquement si c'est ce que vous voulez – bdonlan

Répondre

557

Selon "aide git rm",

git rm --cached file 

devrait faire ce que vous voulez.

+7

Je suis nouveau à Git, mais je l'ai fait quelques fois et puis quand quelqu'un d'autre tire du dépôt, * leur * fichier local est supprimé. Toujours en train de chercher pour voir s'il est possible de ne pas supprimer du développeur suivant. – Terry

+2

@Terry, voir http://stackoverflow.com/questions/2604625/git-how-to-remove-file-from-index-without-deleting-files-from-any-repository – AlcubierreDrive

+14

La chose confuse pour moi est que la page de manuel de git-rm indique qu'elle ne supprime pas le (s) fichier (s) de votre répertoire de travail. Mais ce que je vois quand je n'utilise pas --cached est que le fichier est remédié. – zznq

22

J'ai essayé d'expérimenter avec les réponses données. Ma conclusion personnelle est sorti être:

git rm -r --cached . 

Et puis

git add . 

Cela semblait faire mon répertoire de travail agréable et propre. Vous pouvez mettre votre nom de fichier à la place du point.

+7

+1 '-r': Autorise la suppression récursive lorsqu'un nom de répertoire principal est donné. –

+1

-r n'est pas requis si vous faites * .suffix (très perturbant pour découvrir ce comportement à la dure) – szeitlin

Questions connexes