Git: ignorar file (s) específico (s) en Commit and Pull

Estoy "ignorando" ConnectionString.config usando update-index –assume-unchanged, ya que lo cambio a menudo durante el desarrollo y es generado automáticamente por nuestro server de compilation; sin embargo, al realizar un Pull / Rebase, la operación falla porque la sobrescribía localmente, lo que me obligó a esconderla y restaurarla.

¿Hay alguna manera de ignorar un file tanto en commit como en pull? Solo quiero que Git lo deje en paz.

Si desea que esto solo suceda en su sistema local, el file local .git/info/exclude debería resolver el problema.

Para recotivar la respuesta de la publicación anterior de la stack:

Los patrones que son específicos de un repository particular pero que no necesitan compartirse con otros repositorys relacionados (por ejemplo, files auxiliares que viven dentro del repository pero son específicos del flujo de trabajo de un usuario) deben ir al $GIT_DIR/info/exclude file .

El file .git/info/exclude tiene el mismo formatting que cualquier file .gitignore. Otra opción es establecer core.excludesFile en el nombre de un file que contiene patrones globales.

Tenga en count que, si ya tiene cambios sin grabar, debe ejecutar lo siguiente después de editar sus patrones de ignorar:

 git update-index --assume-unchanged [<file>...] 

Nota sobre $ GIT_DIR : Esta es una notación utilizada en todo el manual de git simplemente para indicar la ruta al repository de git. Si la variable de entorno está configurada, anulará la location del repository en el que se encuentre, que probablemente no sea el que desea.

Puedes probar y usar la bandera assume-unchanged
https://git-scm.com/docs/git-update-index

– [no-] asumir-sin cambios

Cuando se especifica este indicador, los nombres de los objects registrados para las routes no se actualizan.

En cambio, esta opción establece / desactiva el bit "asumir sin cambios" para las routes.

Cuando el bit "asumir sin cambios" está activado, el usuario promete no cambiar el file y permite que Git suponga que el file del tree de trabajo coincide con lo que está grabado en el índice. Si desea cambiar el file de tree de trabajo, debe deshacer el bit para decirle a Git. Esto a veces es útil cuando se trabaja con un gran proyecto en un sistema de files que tiene una llamada al sistema lstat (2) muy lenta (por ejemplo, cifs).

Git fallará (correctamente) en caso de que necesite modificar este file en el índice, por ejemplo, al fusionarse en una confirmación; por lo tanto, en caso de que el file asumido no rastreado se cambie en sentido ascendente, deberá manejar la situación manualmente.

enter image description here

¿Hay algún motivo por el que el file deba registrarse en su repository de git? Si no, elimínelo del repository y agréguelo a .gitignore :

 git rm filename.foo echo "filename.foo" >> .gitignore git add .gitignore git commit