Duplicata possible:
git - suppression d'un fichier du contrôle de code source (mais pas du code source)
J'ai un .classpath
fichier qui se trouve actuellement dans le référentiel GIT.
Après avoir retiré le référentiel de suppression (git pull Origin master
). Comment puis-je supprimer ce fichier du contrôle GIT, je veux dire NOT to delete
ce fichier de mon ordinateur mais le supprimer du contrôle de version GIT. (Parce que ce fichier n'est pas nécessaire pour le contrôle de version).
P.S.
J'ai essayé git rm <path-to>/.classpath
, mais alors tout mon projet se plaint d'un mauvais chemin de classe, pourquoi git rm supprimer mon fichier au lieu de le supprimer du contrôle de version ???
Utilisation git rm --cached
pour supprimer de l'index mais pas de l'arbre de travail.
Après cela, vous devez ajouter .classpath
dans votre fichier .gitignore, pour éviter qu'il ne soit à nouveau validé.
pourquoi git rm supprimer mon fichier au lieu de le supprimer du contrôle de version ???
Parce que c'est ce qu'il dit qu'il fera.
$ git help rm
NAME
git-rm - Remove files from the working tree and from the index
SYNOPSIS
git rm [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet]
[--] <file>...
DESCRIPTION
Remove files from the index, or from the working tree and the index.
... When --cached is given,
the staged content has to match either the tip of the branch or the
file on disk, allowing the file to be removed from just the index.
OPTIONS
...
--cached
Use this option to unstage and remove paths only from the index.
Working tree files, whether modified or not, will be left alone.
Comme le dit Platinum Azure, utilisez git rm --cached
pour le supprimer uniquement du contrôle de code source et utiliser .gitignore
pour le garder à l'extérieur et l'empêcher de s'afficher dans git status
.