último ultimo remoto recuperar locales eliminar deshacer descartar cambios borrado git

ultimo - ¿Cómo puedo eliminar mi último commit en mi repositorio de git local?



git revert head (4)

Hay una manera, de hecho, en git, estoy seguro de que hay una multitud de formas de hacerlo ...

Podrías hacerlo:

git stash # Stash your changes git pull # Pull the changes git stash pop # Pop your stash

Podrías hacerlo:

git pull --rebase # Bring in the changes and apply yours on top of it.

Podrías hacerlo:

git stash # Stash your changes git checkout <commit> # Pull a specific commit. git stash pop # Pop your stash

Espero eso ayude.

Cuando hago un ''git pull'', tengo un conflicto con la confirmación de la cabeza. Así que hice un ''git rebase --abort''

¿Puedo ''guardar'' mi compromiso en un "parche" y luego hacer un tirón de git?

Lo que quiero emular es:

  • No me comprometí, pero hice un ''git stash'' en su lugar
  • Haz un git pull para evitar cualquier error de fusión

Así que necesito de alguna manera "dar marcha atrás al reloj". ¿Es eso posible con git?


Primero sugiero hacer una copia de seguridad de tu rama:

git branch your_branch_backup

Entonces la forma más fácil es:

git reset --soft <commit> #Go back in time but without loosing your changes git stash #Stash your changes git pull #Refresh your branch with origin git stash pop #Re-apply your changes on the refreshed branch

Entonces puedes cometer como de costumbre.


Si confirmó los cambios en su repositorio local, podría hacer una rebase directa:

origen git fetch

git rebase origin / master

Esto desenrolla sus confirmaciones locales del maestro local, aplica nuevas confirmaciones de origen / maestro y luego reproduce sus confirmaciones locales.

En su situación, esto resultará en un conflicto y git le dirá qué archivos necesitan ser editados para resolver el conflicto. Después de hacerlo, git add esos archivos y luego git commit sin argumentos para volver a confirmar los cambios.


Su parche 7826b2 aún causará un conflicto cuando se aplique después de tirar, pero puede hacer lo siguiente:

git reset --soft HEAD^ git stash git pull git stash pop # Will cause a conflict git commit # Re-commit 7826b2

Otro flujo de trabajo también es posible:

git reset --hard HEAD^ git pull git cherry-pick 7826b2 # Will cause a conflict

El segundo flujo de trabajo se basa en el hecho de que Git mantiene el commit de 7826b2 en el reflog (puede pensar en él como en la papelera de reciclaje) aunque reinicie los cambios que introdujo con la primera línea.