tag - ¿qué hace git log-oneline?
Git-Ignora temporalmente los cambios triviales en los archivos (4)
En mi caso de uso (desarrollo utilizando un archivo de configuración editado en mi máquina personal, ejecutado en otra máquina con la configuración sin cambios), esta fue la solución para mí:
empezar a ignorar los cambios en un archivo:
git update-index --assume-unchanged path/to/file
sigue rastreando de nuevo:
git update-index --no-assume-unchanged path/to/file
Estoy buscando una forma de "ocultar" los cambios menores realizados en unos pocos archivos en Git, de modo que no se muestren en estado git hasta que se realicen cambios diferentes en esos archivos.
Ejemplo: tengo un archivo java en el que el único cambio realizado es la eliminación de una importación no utilizada (un colaborador se olvidó de ejecutar una importación organizada antes de cometer). Ahora he eliminado esa importación y el cambio (obviamente) aparece en git. Como no tengo ningún otro cambio que hacer en ese archivo, realmente no me gusta enviar el archivo como parte de otro cambio (no relacionado) o realizar este cambio de forma independiente. Claro, podría revertir el cambio y solo aplicarlo cuando tenga que hacer cambios en ese archivo, pero podría "arriesgarme" a olvidarlo.
¿Existe un comando para tal tarea? Funcionaría de alguna manera como el comando de asumir sin cambios pero de una manera no permanente.
¿Cuál sería la forma correcta de resolver esto si no hay tal comando disponible?
Gracias por adelantado.
Hay varias formas [aunque puede que no estén limpias y ordenadas y que requieran su atención]
- Agregue el archivo en cuestión a
.gitignore
en su repositorio para que no aparezca para confirmar. Tenga cuidado de eliminar esto de.gitignore
cuando esté listo para enviar el archivo - Asegúrese de no ''preparar'' el archivo mientras realiza el resto de sus cambios. Es posible que desee escribir un contenedor sobre
git
que garantice comandos comogit commit -a
ogit add .
ejecutar en todos excepto el archivo en cuestión. Otra alternativa sería usargit gui
ogit citool
donde puede asegurarse visualmente que su archivo no se encuentra en el área de "puesta en escena" y por lo tanto nunca se confirma - Otra forma sería comprometer todos sus cambios ''confiables'' y luego
git stash save
su único archivo de trabajo. Más adelante, cuando esté listo para cambiar el archivo, puede hacergit stash pop
y continuar trabajando y comprometiéndose.
Espero que ayude :)
Mantenga sus cambios que no están listos en una rama separada. git rebase
esta rama sobre nuevos cambios en la historia principal según sea necesario.
Ya sea un desarrollo en progreso, cosas temporales, incluso cosas que nunca se incluirán en la historia principal del proyecto, el mismo proceso funciona igualmente bien.
Si / cuando los cambios de la rama están listos para ser incluidos en la historia principal; fusionarlo. Si no, manténgalos en la rama separada y continúe con la rebasación.
(nota al margen: git merge --no-ff
puede ser útil para crear un merge-commit incluso si es posible un avance rápido - dependiendo de las reglas de su proyecto, esto puede ser preferible)
Simplemente no agregue los cambios triviales.
Es una buena práctica revisar cuidadosamente las cosas que agrega antes de cometer.
Incluso puede ignorar algunos cambios en un archivo mientras agrega otros, usando
git add -p.
Esto es aún más fácil si usas gitx (R) .