Soy muy nuevo en git y me preguntaba si algo como esto es posible.
>git log --pretty=oneline --abbrev-commit
2f05aba Added new feature
3371cec Fixed screw up <-- I want to remove this
daed25c Screw up <-- and remove this.
e2b2a84 First. So it's like they never happend.
es posible?
Si realmente desea eliminarlos (borrándolos del historial, para que nunca más se vean), puede
ejecutar rebase:
y luego, simplemente elimine (o comente) las líneas correspondientes a las confirmaciones que desea eliminar, así:
fuente
git push origin HEAD --force
git revert
. Lo cual, cuando lo piensas, es sensato porque si extraes el código de otra persona, no querrás que puedan borrar tus antiguas confirmaciones sin algún tipo de historial, ¿verdad?d
odrop
es el comando para eliminar confirmaciones del historial.Para eliminar completamente las confirmaciones, ahora hay una nueva opción
drop
para las rebases interactivas de git. Primer intento:Luego reemplace
pick
condrop
para que se eliminen las confirmaciones:Esto funcionó en Fedora para mí con la siguiente versión:
fuente
Squash es útil cuando desea generar una lista de confirmaciones combinadas bajo un solo hash, pero si está buscando tomar tres confirmaciones separadas y tener una salida final que parece ser una confirmación única, le recomiendo
fixup
git rebase -i HEAD~4
Puede encontrar más información en la lista de comandos de la interfaz de usuario de rebase interactiva.
fuente