in

Deshaciendo un git rebase

apple touch icon@2

Me molesta muchísimo que ninguna de estas respuestas sea completamente automática, a pesar de que debería ser automatizable (al menos en su mayoría). Creé un conjunto de alias para intentar remediar esto:

# Useful commands
#################

# Undo the last rebase
undo-rebase = "! f() { : git reset ; PREV_COMMIT=`git x-rev-before-rebase` && git reset --merge "$PREV_COMMIT" "$@";}; f"

# See what changed since the last rebase
rdiff = "!f() { : git diff ; git diff `git x-rev-before-rebase` "$@";}; f"

# Helpers
########
# Get the revision before the last rebase started
x-rev-before-rebase = !git reflog --skip=1 -1 "`git x-start-of-rebase`" --format="%gD"

# Get the revision that started the rebase
x-start-of-rebase = reflog --grep-reflog '^rebase (start)' -1 --format="%gD"

Debería poder modificar esto para permitir retroceder una cantidad arbitraria de rebases con bastante facilidad (hacer malabarismos con los argumentos es la parte más complicada), lo que puede ser útil si realiza una serie de rebases en rápida sucesión y estropea algo en el camino.

Advertencias

Se confundirá si algún mensaje de confirmación comienza con «rebase (start)» (no hagas esto). Puede hacer que la expresión regular sea más resistente para mejorar la situación haciendo coincidir algo como esto para su expresión regular:

--grep-reflog "^rebase (start): checkout " 

ADVERTENCIA: no probado (regex puede necesitar ajustes)

La razón por la que no he hecho esto es porque no soy 100% un rebase siempre comienza con un pago. ¿Alguien puede confirmar esto?

[If you’re curious about the null (:) commands at the beginning of the function, that’s a way of setting up bash completions for the aliases]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

qpsk modulator

Modulación por desplazamiento de fase en cuadratura

y7x4YXhzEaCNDWoebthhVG 1200 80

Toph va en solitario en la nueva novela gráfica Avatar: The Last Airbender