2011-08-29 25 views
65

Tengo un archivo (config.php), que ya está comprometido con el repositorio de Git, pero quiero ignorarlo localmente, es decir, quiero que ese archivo permanezca en el repositorio, pero obligo a Git a ignorar cualquier cambio en él.¿Cómo ignorar los archivos que están en el repositorio?

Pongo el archivo en .gitignore, pero todavía se marca como cambiado y Git todavía intenta realizar cambios en él, cada vez que confirmo algo. Alguna idea, ¿qué estoy perdiendo o haciendo mal?

+0

por favor agregue su archivo .gitignore - de esa manera podríamos ver cualquier problema al respecto. – Lars

+0

posible duplicado de [¿Cómo ignorar un archivo que ya está comedido en la confirmación anterior?] (Http://stackoverflow.com/questions/625919/how-to-ignore-a-file-which-is-already-comitted -in-the-previous-commit) –

Respuesta

143

Si el archivo aún se muestra en el estado, aunque esté en .gitignore, asegúrese de que todavía no esté rastreado.

git rm --cached config.php 

Si lo que desea es hacer caso omiso de forma local, se podría también hacen que sea ignorada por el estado git:

git update-index --assume-unchanged config.php 
+1

¡Bien, gracias! Si fusiono mi rama con otra, ¿puede este archivo generar algunos problemas? – prcaen

+1

@ Nimbus147: no debería ser un problema, y ​​cualquier cambio en ese archivo se ignorará (es decir, no se agregará/confirmará). – VonC

+4

'assume-unchanged' funciona muy bien, gracias –

-3

Una vez que un archivo aparece en la lista .gitignore, no puede cambiarlo.

Así que puede eliminar el archivo de la lista en una confirmación, confirmar los cambios en la siguiente, luego volver a agregar el archivo a la lista de ignorar en un tercer compromiso posterior.

Lo que suelo hacer es dividir el archivo en dos, uno que está permitido y puedo cambiar, que incluye el segundo archivo si existe, luego los desarrolladores pueden realizar cambios de configuración en el archivo ignorado de forma opcional.

+1

"_Uno un archivo aparece en la lista .gitignore no puede cambiarlo_" - ¿puede usted aclarar, qué quiere decir? Tengo ** muchos archivos ** en muchos de mis '.gitignore's y ¡estoy cambiando constantemente estos archivos! Esta es la primera vez, escucho a alguien decir, que una vez que agrego el archivo a '.gitignore', no puedo cambiarlo. – trejder

+1

Él está realmente equivocado. Puedes cambiarlos Git simplemente no los sube, ni siquiera te da la opción de subirlos. – David

2

Si el archivo ya está en el repositorio, y por lo tanto el Índice/área de ensayo , entonces una actualización de .gitignore no cambiará esa situación. Seguiría siendo un compromiso.

Para eliminar el archivo del área Índice/Estadística, utilice git rm <file>.

Cuestiones relacionadas