2012-07-24 20 views
54

Estoy tratando de trabajar usando Git - Extension con un colega, en una aplicación escrita en C#.GIT - No se puede ignorar el archivo .suo

Hemos sido agregados en el archivo .gitignore el archivo "project1.suo" pero cada vez que uno de nosotros tiene que comprometer el proyecto, Git parece indicarnos que confirme el archivo "project1.suo".

Hemos probado muchos método para agregar el archivo en .gitignore así:

*.suo 
project1.suo 
c:\project\project1.suo 

No podemos solucionar este problema.

+2

es el archivo .gitignore itselft añaden al repositorio? –

+0

sí está en el repositorio – Laxedur

+3

Supongo que el archivo se ha agregado una vez, intente con un git rm en este archivo explícitamente, confirme y vea si todavía se sugiere como archivo agregado. –

Respuesta

113

git no ignora los archivos que se han agregado al repositorio. Si desea obtener ignoró, tiene que borrar el archivo desde el repositorio:

git rm --cached project1.suo 
git commit -m "Delete suo file from repository" 

Esto eliminará el archivo desde el repositorio, mientras que todavía está en su disco duro.

+0

si maneja los archivos * .suo, ciertamente no va a enviar esos archivos de forma remota. ¿Causará el problema para la persona que clone este proyecto? – Waqas

+0

Si está utilizando el cliente de Visual Studio, no hay forma de hacerlo desde allí, tiene que usar el shell de cmd. Pero si utilizara el comando rm desde el shell, vería el archivo .suo con un tachado, pero si confirmara el cambio a través de la interfaz de usuario de VS, reaparecería. Tienes que hacer ambos comandos arriba a través de la línea de comando. –

+1

@Waqas no, visual studio solo creará un nuevo archivo para ellos. Esto es cuando el .gitignore excluyendo * .suo como parte del repositorio es importante. Cuando se comprometen, el .gitignore que revisaron les impedirá (o al menos los desalentará) que ingresen su propio archivo SUO. –

-4

Tuve el mismo problema. La solución de Ikke ayuda, pero no olvides eliminar la entrada * .suo de tu .gitignore, si está allí. Después de corregir el archivo, haga

git add **/*.suo 
+1

El .suo NO debe ser eliminado de .gitignore para cumplir con los requisitos del OP. – Caltor

1

siempre de nuevo a esta pregunta a utilizar el método de la respuesta, pero he encontrado una solución mejor, que es hacer caso omiso de los cambios en este archivo. El método es

git update-index --assume-unchanged project1.suo 

o

git update-index --assume-unchanged .vs/config/applicationhost.config 

Para deshacer este uso --no-asuma-sin cambios

+0

Recibo un mensaje "fatal: no se puede marcar el archivo web /" – dancerjude

Cuestiones relacionadas