Solía git init
crear un repositorio nuevo, luego hice tres confirmaciones. Ahora quiero volver a basarme para volver atrás y enmendar mi primer compromiso, pero si lo hago, ¡ git rebase -i HEAD~3
se queja! Si intento lo mismo con, HEAD~2
entonces funciona un poco, pero solo me permite reorganizar las dos últimas confirmaciones.
¿Cómo me refiero a la 'confirmación antes de que haya alguna confirmación' o retrocedo e inserto una confirmación vacía?
git
git-rebase
lxs
fuente
fuente
Respuestas:
La forma más fácil, con un git lo suficientemente reciente (esto ha estado disponible durante mucho tiempo, así que debería tener esto):
La otra forma fácil, como señaló twalberg en un comentario , es usar
git checkout --orphan
para configurar para hacer una nueva confirmación de root, sobre la que puede copiar las antiguas confirmaciones. (Esto es lo querebase -i --root
termina haciendo internamente de todos modos).fuente
git rebase -i --root
obtengo el errorerror: cannot 'fixup' without a previous commit
al intentar aplastar la segunda confirmación (solo quiero la primera)pick
para cada una. Cambie el segundopick
asquash
ofixup
, escriba la hoja de instrucciones, salga de su editor y Git debería hacer el trabajo.