Cada desarrollador de mi equipo tiene su propia configuración local. Esa información de configuración se almacena en un archivo llamado devtargets.rbque se utiliza en nuestras tareas de compilación de rake. Sin embargo, no quiero que los desarrolladores se golpeen entre sí el archivo de devtargets del otro.
Mi primer pensamiento fue poner ese archivo en la .gitignorelista para que no esté comprometido con git.
Entonces comencé a preguntarme: ¿es posible confirmar el archivo, pero ignorar los cambios en el archivo? Entonces, confirmaría una versión predeterminada del archivo y luego, cuando un desarrollador lo cambie en su máquina local, git ignoraría los cambios y no aparecería en la lista de archivos modificados cuando realiza un estado git o git commit .
¿Es eso posible? Sin duda sería una buena característica ...

Respuestas:
Claro, hago exactamente esto de vez en cuando usando
Para deshacer y comenzar a rastrear nuevamente (si olvidó qué archivos no se rastrearon, consulte esta pregunta ):
Documentación relevante :
Fallar con gracia en este caso significa que si hay algún cambio en ese archivo (cambios legítimos, etc.) cuando realiza una extracción, dirá:
y se negará a fusionarse.
En ese momento, puede superar esto al revertir sus cambios locales, aquí hay una manera:
luego tire nuevamente y vuelva a modificar su archivo local, o podría configurarlo
–no-assume-unchangedy puede hacer un alijo y fusión normales, etc. en ese punto.fuente
git update-index --assume-unchangedes para lo que sirve. public-inbox.org/git/…La forma preferida de hacer esto es usar
git update-index --skip-worktree <file>, como se explica en esta respuesta :Para deshacer esto, use
git update-index --no-skip-worktree <file>Desde git versión 2.25.1, esta tampoco es la forma recomendada, citando:
fuente
git update-index --skip-worktreepara este propósito.La práctica común parece ser crear un
devtargets.default.rby confirmarlo, y luego indicar a cada usuario que copie ese archivodevtargets.rb(que está en la lista .gitignore). Por ejemplo, CakePHP hace lo mismo para su archivo de configuración de base de datos que naturalmente cambia de máquina a máquina.fuente
--assume-unchangedopción para todos los que clonan el repositorio.devtargets.default.rbsidevtargets.rbno existe.Para usuarios de IntelliJ IDEA: si desea ignorar los cambios para un archivo (o archivos), puede moverlo a otro
Change Set.Local Changes(Cmd + 9)F6para moverlos a otroChange Setfuente