División del primer commit en git

Quiero dividir el primer commit en mi repository git, pero no puedo usar rebase para hacer esto porque se requiere un nodo padre. ¿Encontré Edit the root commit en Git? es útil para modificar el primer compromiso, pero no para dividirlo. ¿Cómo puedo dividirlo?

Puedes simplemente seguir exactamente el mismo process en la pregunta a la que te has vinculado, pero después de verificar la confirmación raíz puedes usar git commit --amend para modificar la confirmación original y luego git commit para realizar una confirmación adicional antes de continuar con el command rebase.

Dependiendo de cómo quiera dividir la confirmación, puede usar git rm --cached para eliminar los files que quiera agregar en la segunda confirmación antes de la git commit --amend inicial de git commit --amend y editar cualquier file que quiera que se vea diferente antes de llamar a git add esos files, nuevamente antes de llamar a git commit --amend .

Después de llamar a git commit --amend , para asegurarte de que comprometes exactamente el estado de la confirmación raíz original, puedes llamar:

 git checkout <sha1-of-original-root> -- . 

antes de llamar a git commit para hacer el segundo commit de la confirmación de raíz dividida.

Puede usar la opción --root para decirle a rebase que desea reescribir la confirmación raíz / primera:

 $ git rebase --interactive --root 

A continuación, la confirmación raíz se mostrará en la list REPARAR rebase, y puede seleccionar editarla:

 edit <root commit sha> <original message> pick <other commit sha> <message> ... 

Esta es la explicación de --root from the git rebase docs :

Rebase todos los commits accesibles desde <branch> , en lugar de limitarlos con un <upstream> . Esto le permite volver a establecer la base de la (s) confirmación (es) raíz (es) en una twig.