Git: Moviendo mis propios commits a la parte superior de la twig y reiniciando

Soy bastante nuevo cuando se trata de commands Git más complejos, así que necesito un poco de ayuda con este. Así que las cosas son actualmente así:

origin/master 1->2->3->4 master 1->A->2->3->4 | my commit 

Por el momento, he cometido A. No estoy completamente satisfecho de cómo resultó, pero aún no lo he llevado al origen / maestro. También tengo algunos cambios locales que me gustaría include en A además de cambiar algunas cosas en A. Por lo que he leído, puedo mover mi confirmación local A por delante de 4, que se vería así.

 master 1->2->3->4->A 

Me gustaría hacer un reinicio por software para confirmar 4 para que los cambios de la confirmación A y los cambios locales actuales sean cambios no confirmados. Entonces los commands que he descubierto serían los siguientes:

 git stash git rebase ??? git reset --soft 4 git stash pop 

Entonces, como resultado final, me gustaría tener los cambios del compromiso A y los cambios locales previos ahora juntos como cambios locales. ¿Es posible lo que describí con los commands anteriores? ¿Cómo movería mi commit local A a la cima con rebase? Suponiendo que todo funciona ahora, ¿puedo abrir mi escondite de forma segura junto con el reinicio?

Después de esconderse, debe volver a establecer la base de forma interactiva:

 git rebase -i HEAD~4 # Rebase up to the last 4 most recent commits. 

Luego, en el editor emergente, reordera commits como desees y haz A bottom-most (en contraste con gitk , esta vista muestra el commit más reciente en la parte inferior, no en la parte superior). Salga del editor, guarde el file y deje que Git lo vuelva a basar. Resuelva cualquier conflicto si es necesario. Luego restablece y muestra el alijo como lo hiciste en tu ejemplo.

Si ha ejecutado git fetch y hay cambios, y aún no ha implementado sus cambios locales:

git pull --rebase hará lo que usted desee – rebobina el HEAD hasta el punto anterior al inicio, extrae los últimos cambios de la cadena ascendente y luego reproduce los cambios para que aparezcan en secuencia.

Todos los conflictos se resuelven en el punto donde deberían haber aparecido, en lugar de en una fusión de compromiso.