web-dev-qa-db-fra.com

supprimer un fichier du contrôle GIT

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 ???

42
Leem.fin

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é.

89
Platinum Azure

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.

14
Useless