Me parece que hago muchos pequeños cambios en mi código fuente, a menudo cosas que casi no tienen ningún efecto funcional. Por ejemplo:Gestión de cambios de código estético en git
- Mejorando o corrigiendo comentarios.
- Mover definiciones de funciones dentro de una clase para un orden de lectura más natural.
- Espaciando y alineando algunas declaraciones para facilitar la lectura.
- Colapsar algo utilizando varias líneas en una.
- Eliminación de una pieza antigua de código descompuesto.
- Corregir algunos espacios en blanco inconsistentes.
Supongo que tengo una formidable atención a los detalles en mi código. Pero el problema es que no sé qué hacer con estos cambios y hacen que sea difícil cambiar de rama, etc. en git. Me parece que no sé si cometer los cambios menores, esconderlos, o ponerlos en una rama separada de pequeños retoques y fusionar eso más tarde. Ninguna de esas opciones parece ideal.
El principal problema es que este tipo de cambios son impredecibles. Si tuviera que cometer esto, habría tantas confirmaciones con el mensaje "Cambio estético de código menor", porque, en el momento en que realizo tal compromiso, noto otro problema similar. ¿Qué debo hacer cuando hago un cambio menor, un cambio significativo y luego otro cambio menor? Me gustaría fusionar los tres cambios menores en un compromiso. También es molesto ver los archivos modificados en git status
cuando el cambio apenas merece mi atención. Sé de git commit --amend
, pero también sé que es una mala práctica, ya que hace que mi repo sea inconsistente con los controles remotos.
Este es un problema común a todos los sistemas de control de fuente. Todavía no he encontrado una respuesta integrada en un sistema. – ChrisF
Si mantiene sucursales locales de las que nunca inserta/envía parches (por ejemplo, una rama cosmética), entonces cosas como 'commit --amend' y' rebase --interactive' (que pueden reordenar, editar y aplastar commits) de repente son potencialmente buena práctica: ¡pueden hacer más limpia tu historia de desarrollo! – Cascabel
utiliza la extensión MQ para mercurial para obtener la funcionalidad de git rebase en mercurial –