¿Cómo git rebase el primer commit?

git init para crear un nuevo repository, luego hice tres commits. Ahora quiero rebase para volver y modificar mi primer commit, pero si lo hago git rebase -i HEAD~3 se queja! Si bash lo mismo con HEAD~2 entonces funciona un poco, pero solo me permite reorganizar los dos últimos commits.

¿Cómo me refiero al 'commit antes de que haya commits' o regrese e inserte un commit vacío?

La manera fácil, con un idiota reciente (esto ha estado fuera por mucho time, así que deberías tener esto):

 git rebase -i --root 

La otra manera fácil, como señaló Twalberg en un comentario , es usar git checkout --orphan para configurar para hacer una nueva confirmación raíz, sobre la que puedes copyr las confirmaciones anteriores. (Esto es lo que rebase -i --root termina haciendo internamente de todos modos.)

Por lo que puedo decir, no se puede hacer reference a la 'confirmación antes de que haya confirmaciones'. Tampoco es fácil agregar una confirmación sin un padre. Sin embargo, puede modificar la confirmación inicial y luego volver a seleccionar el original:

 $ git log --pretty=oneline 333333 commit three 222222 commit two 111111 commit one $ git reset --hard 111111 $ rm -fr * $ git commit -a --amend --allow-empty -m "Initial commit" $ git cherry-pick 111111 222222 333333 $ git log --pretty=oneline 333333 commit three 222222 commit two 111111 commit one 2c5e01 Initial commit