2010-02-23 20 views
21

He creado un archivo .gitignore en la carpeta con la carpeta .git, pero aún obtengo los archivos que trato de ignorar cuando hago un reexploración del repositorio.¿Cómo ignoro los archivos con la GUI de Git?

Éste es el contenido del archivo.

# Ignored files 
*.suo 
*.user 
bin 
obj 
*.pdb 
*.cache 
*_svn 
*.svn 
*.suo 
*.user 
*.build-res 
TestResults 
_ReSharper* 

¿Qué estoy haciendo mal? ¿Dónde se supone que se encuentra el archivo?

Respuesta

12

Debe asegurarse de que el archivo que todavía está viendo no está comprometido o montado actualmente.

Si las elimina (git rm o git rm --cached) y luego las agrega como archivo privado, se ignorarán.

+0

esta debe ser la razón, sí, gracias. – Darkmage

1

Lo está localizando bien. .gitignore debe estar en la misma carpeta, donde está ubicada la carpeta .git. El archivo dentro también parece correcto. Sin embargo, no tengo una línea de comentarios en la parte superior.

6

Su archivo se ve bien. Solo asegúrate de no tener ningún tipo de espacio en blanco al comienzo de cada línea, tardé 4 horas en descubrir por qué mi .gitignore no funcionaba correctamente; el motivo fue, por supuesto, un problema de "cortar y comer" donde tenía una línea vertical de espacios al principio del archivo.

Debe tener cuidado con git commit -a antes de asegurarse de que su archivo .gitignore realmente limpia todo lo que no desea. Marque cada archivo (o use comodines) con git add *.cpp *.h o, como prefiero, desarrolle su .gitignore a medida que progresa, y siempre consulte con git status antes de comprometerse.

Si desea volver a verificar que su .gitignore realmente funciona, try

git ls-files --others -i --exclude-standard 

Esto debe listar todos los archivos que están ignorando la actualidad.

Para limpiar los archivos ya agregados (probablemente utilizando git add ., un error que todos hacemos en el principio =]) se puede hacer como @VonC dijo: ya sea correr

git rm <filename> 

o

git rm --cached <filename> 

Otra opción para eliminar todos los archivos que ha agregado involuntariamente es limpiar completamente su repositorio y luego volver a agregar todo. Si desea limpiar todo en el área de ensayo, you can run

git --rm cached . 

Pero no realice git add . Hasta que no se haya asegurado de que git status sólo muestra los archivos que realmente desea en el repositorio.

Otra cosa muy útil con git es que no necesita rutas a los archivos cuando se usan comodines. Si usted enumera sus ficheros ignorados y ves que desea eliminar todos los *.suo y *.log archivos, basta con ejecutar

git rm --cached *.suo *.log 

y git se encarga de la búsqueda de todos los archivos en su repositorio que coincide con la firma, no importa en qué lugar del árbol que son.

0

Cuando miro esto, creo que olvidó confirmar su archivo de ignorar.

2

he intentado varias maneras de conseguir que esto funcione y que finalmente fue bastante simple:

Debe cometer el .gitignore primero!

Además, si utiliza TortoiseGIT - GitEx Commit Tool, existe la opción de editar archivos ignorados.

0

Ninguna de las soluciones de "rm cached" funcionó para mí. El archivo debe codificarse como ASCII/ANSI. Cambié los finales de línea también, pero eso solo no lo solucionó. No puedo encontrar la URL que contenía estas instrucciones (lo siento, ¡póster original!) Pero esto funcionó para mí:

  1. Instale Notepad ++ si no lo tiene ya. El panel de texto debería funcionar también con , pero yo uso Notepad ++.
  2. Abra su .gitignore con Notepad ++.
  3. Haga clic en Ver | Mostrar símbolo | Mostrar todos los personajes Probablemente verá CR LF al final de cada línea.
  4. Realice una búsqueda y sustitución (ctrl + h), asegurándose de que esté marcada la opción Extender (esquina inferior de la mano izquierda). Busque \ r \ n y reemplace con \ n. Verás que todos los CR LF cambian a solo LF.
  5. Ahora haga clic en Codificación | Codificar en ANSI.
  6. Guarde el archivo y salga.

Desde el símbolo del sistema en Windows o en el símbolo del sistema de git, según lo que desee, cuando hace el estado de git no debería mostrar los archivos en .gitignore.

Cuestiones relacionadas