en git, si la corrección se aplica a una versión, ¿cómo se aplica a las versiones posteriores?

cuando se utiliza git como repository, suponiendo que la cabeza está en v1.6

si encuentro un error en v1.0

git stash save "interruption " # is this necessary? git checkout v1.0 vi badfile.c git commit -a -m 'bugger fixed' 

¿Cómo se propaga la corrección a las versiones posteriores?

O fusiona con la cabeza, rebase en la cabeza, o cherrypick.

Opción A:

 1.0-----1.6-----merge \ / \ / -fix------- 

Opción B:

  1.0-----1.6-----fix (rebased) \ \ -fix 

Opción C:

 1.0-----1.6-----fix (cherrypicked) \ \ -fix 

El alijo (o tal vez un compromiso interino que puede luego --amend a) es necesario para cambiar de twig.

Deberías cortar una twig de la label para que git checkout -b v1.0-bugfix v1.0 (prefiero llamar a la twig algo así como issue42 donde 42 es el número de error).

A continuación, arregle el cambio en badfile.c

git checkout master (asumiendo que estaba en master antes de cambiar a v1.0-bugfix .

git merge v1.0-bugfix para get los cambios en la versión actual. Deberá fusionarlo en las twigs donde desea que esté presente la solución.

git stash pop para recuperar los cambios que mantuviste a un lado.

El tree ahora se verá algo así como

  (v1.0-bugfix)--------------------------------------------------(fix badfile) / \ / \ / \ o---o---(v1.0)---o---(v1.1)---o---o---(v1.2)---(v1.3)---(v.14)---o---(current-head)---(merge)---(head-with-fix) 

He marcado commits interesantes con (message) y regulares con o .