2012-02-15 23 views
25

Duplicar posible:
git - removing a file from source control (but not from the source)eliminar un archivo de control de GIT

Tengo un archivo .classpath que actualmente se encuentra en el repositorio GIT.

Después de que saqué del repositorio de eliminación (git pull origin master). ¿Cómo puedo eliminar este archivo del control GIT, quiero decir NOT to delete este archivo desde mi computadora pero eliminarlo del control de versión GIT. (Porque este archivo no es necesario para el control de versiones).

P. S.

Probé git rm <path-to>/.classpath, pero entonces todo mi proyecto se queja de una ruta de clase incorrecta, ¿por qué git rm borra mi archivo en lugar de eliminarlo del control de versión?

Respuesta

51

Utilice git rm --cached para eliminar del índice pero no del árbol de trabajo.

Después de eso, debe agregar .classpath a su archivo .gitignore, para evitar que se vuelva a cometer.

+0

cómo agregar a .gitignore, ¿puede ser más específico? –

+1

'git help ignore' o busque en la web; obviamente publique cualquier pregunta de gitignore una vez que haya intentado – Useless

+0

En la parte superior de su directorio, cree un archivo llamado" .gitignore "y ponga' .classpath' en él. También puede usar comodines para ignorar archivos que coincidan con un determinado patrón (por ejemplo, '* .class' para ignorar todas las clases compiladas de Java). También podría hacer .gitignores en subdirectorios (que luego solo se aplican a esa parte del proyecto), pero lo olvido. Ver http://linux.die.net/man/5/gitignore –

11

por qué git rm eliminar mi archivo en lugar de eliminarlo del control de versión ???

Porque eso es lo que dice que hará.

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

Como dice Platinum Azure, utilice git rm --cached quitar sólo desde control de código fuente, y utilizar .gitignore para mantenerlo fuera y dejar que mostrar en git status.

Cuestiones relacionadas