Cada desarrollador de mi equipo tiene su propia configuración local. Esa información de configuración se almacena en un archivo llamado devtargets.rb
que 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 .gitignore
lista 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-unchanged
y puede hacer un alijo y fusión normales, etc. en ese punto.fuente
git update-index --assume-unchanged
es 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-worktree
para este propósito.La práctica común parece ser crear un
devtargets.default.rb
y 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-unchanged
opción para todos los que clonan el repositorio.devtargets.default.rb
sidevtargets.rb
no 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
)F6
para moverlos a otroChange Set
fuente