publicar - git tags best practices
Restablecer sin perder archivos ya comprometidos (2)
Cuando accidentalmente envié un archivo a la rama incorrecta, normalmente uso git reset --hard HEAD~1
. Sin embargo, utilizando este método generalmente pierdo todos los archivos confirmados. ¿Hay una manera de restablecer un compromiso, sin perder los archivos editados?
Si bien Alex tiene mucha razón, podría sentir la tentación de intentar una secuencia diferente:
Si quisiera el compromiso en una rama por nacer:
git branch newbranch
git reset --hard HEAD^
Si quisiera el commit en una rama existente:
git checkout otherbranch
git cherry-pick firstbranch
git checkout firstbranch
git reset --hard HEAD^
El ejemplo completo de la respuesta de Alex.
git reset --soft HEAD^
git checkout otherbranch
git commit -am "Message"
Tenga en cuenta que el último ejemplo fallará si el intento de "flotar" el cambio a la otra rama falla debido a conflictos. A continuación, tendrá que esconder / pagar / solicitar para entrar en resolución de conflictos.
no use --hard
uso --soft
en --soft
lugar.
Por lo tanto, si quieres eliminar tu último compromiso, harías:
git reset --soft HEAD^