Aplastamiento y reorganización se compromete

He visto muchas publicaciones en blogs sobre el uso de git commit --amend , o rebasing to squash commits.

Me resulta un poco más fácil reajustarme al último punto de control (por ejemplo, antes de todos mis microsets de 'punto de guardado') y luego utilizar el agregado interactivo para seleccionar el mejor order de confirmaciones.

¿Hay algún inconveniente en esto?
Me pregunto b / c, ya que la mayoría de los blogs que leo usan enmendar o rebase para este propósito

La desventaja es que puede volver a seleccionar todos los files individuales para agruparlos nuevamente en commits.

Si sus confirmaciones deben agruparse (sin tener que agregar o eliminar files en esas confirmaciones), entonces una rebase –interactive es más fácil: razona en términos del set de files comprometidos.
De hecho, con los comentarios correctos, una rebase --interactive --autosquash puede hacer el reorderamiento por usted.

Si sus confirmaciones son puntos de guardado puramente intermedios, sin pensar demasiado en su composition en términos de set de files, entonces su solución es adecuada.

Para agregar a lo que respondió VonC, depende de la cantidad de compromisos que tengas también.

Lo que me sucede con más frecuencia es algo como esto:

  • Trabajar en A, comprometer
  • Trabajar en B, comprometer
  • ¡Oh no! Me perdí algo importante en A, confirmo corrección para A

Con una rebase interactiva, es trivial reorderar y luego aplastar la corrección en la confirmación original para A.

Otro ejemplo es cuando solo quiero volver a networkingactar un post de confirmación.

Otro ejemplo más es cuando tengo algo como esto

 A-------------------master \ B-----C-----D-----branch 

y quiero incorporar C & D pero no B en master. Puedo usar rebase para reorderar mi branch commits a C, D, B, luego a git checkout master y git merge D