¿Se puede deshacer una confirmación anterior, que durante mucho tiempo se ha fusionado en su repositorio de git, a través de un comando git? ¿O tiene que deshacer manualmente todos los cambios realizados en esa confirmación?Deshacer un commit de git
Respuesta
siempre puede revertir los cambios de un solo cometen haciendo:
git revert <commit-id>
nota que esto crea una nueva cometer, simplemente aflojando los cambios
por ejemplo, git log --oneline
d806fc9 two
18cdfa2 bye
62c332e hello
c7811ee initial
decir que quiero para revertir los cambios en comprometerse 18cdfa2
:
git revert 18cdfa2
Ahora tenemos: git log -1 -p
commit fb9d6627a71636503fc9a1eb4f725937c783ecee
Author: Seth <[email protected](none)>
Date: Wed Oct 3 10:32:46 2012 +0200
Revert "bye"
This reverts commit 18cdfa27c964b66b624be1030250757b745d6866.
diff --git a/a b/a
index 0907563..3b18e51 100644
--- a/a
+++ b/a
@@ -1 +1 @@
-bye world
+hello world
Siempre se puede hacer git revert <commit-hash>
deshacer un git commit. Sin embargo, esto en la mayoría de los casos no es útil porque crea un nuevo compromiso que agrega a su glog.
Lo que suelo hacer cuando tengo que dar un paso atrás es reiniciar mi rama a una etapa anterior. Para hacer esto, haga un refrito de git y busque la posición HEAD a la que desea ir.
[email protected]:~/myrepo$ git reflog -3
8d386b8 [email protected]{0}: commit: I did something I don't want
2a59955 [email protected]{1}: commit: Feedback from PR #792
1023102 [email protected]{2}: checkout: moving from one branch to another
Ahora, decir que quiero pasar a comprometerse de hash 2a59955
y deshacer todos los cambios en 8d386b8
. Haría:
Update: git reset --soft [email protected]{1}
Esto restablecerá mi rama al estado inicial. Hacer esto no solo deshará todos los cambios, sino que también detendrá el seguimiento de todos los archivos que podría haber agregado en esta confirmación. Por supuesto, esta es la forma más eficiente de deshacer todos los cambios en una única confirmación.
Esto deshará todos los cambios. Hay un restablecimiento completo destinado a retroceder en el tiempo (al menos desde un punto de vista git). Utilice
--hard
en lugar de--soft
para este
Yo diría que es útil en parte * debido * al hecho de que crea una nueva confirmación. ¿Qué pasa si quieres deshacer tu deshacer? ¿Qué pasa si quieres saber más tarde que has revertido? Además, también se debe mencionar el compromiso + presionar, ya que el solo reinicio no cambia el historial de confirmaciones como tal. – eis
Sí, no es así y acepto que también es importante tener un historial de confirmaciones revertidas. Restablecer ayuda cuando desea retroceder un paso y volver a empezar desde el último estado. Además, restablece las estancias en tus registros y no es como si borrases por completo la confirmación. – rizwaniqbal
¡SUAVE! ¡Usas SOFT! Pierdes tus cambios con ese comando. Estaba buscando cómo deshacer un compromiso que comprometió demasiado (maldición, intellij) así que aquí hay una advertencia para el siguiente tipo. – cmp
- 1. cómo deshacer commit
- 2. Deshacer último commit/merge
- 3. ¿Cómo puedo deshacer un commit de git DESPUÉS de un git push?
- 4. Deshacer un git pull --rebase
- 5. Git: Cómo deshacer commit * y * revertir a la última rama
- 6. ¿Cómo puedo deshacer mi último git add/commit?
- 7. Cómo deshacer un Git rollback
- 8. Deshacer un alijo git
- 9. Deshacer eliminar en GIT
- 10. revirtiendo push'd git commit
- 11. Deshacer un commit Git después de empujar usando el parche inverso?
- 12. Deshacer un git pull --rebase?
- 13. Indicando si un commit Git es un commit Merge/Revert
- 14. Git: deshacer cambios locales; git add. + git rm?
- 15. ¿Cómo cargo un commit de git específico?
- 16. Git commit from python
- 17. Deshacer un error de git bisect
- 18. git commit directorio
- 19. delete first git commit
- 20. Script Git commit bash
- 21. git commit -a confusion
- 22. Git eliminar commit raíz
- 23. git commit problems
- 24. git: eliminar 2nd commit
- 25. Git Commit Generation Numbers
- 26. git find fat commit
- 27. Bad commit to Git
- 28. git commit - format?
- 29. Lost Last Git Commit
- 30. ¿Cómo deshacer una calabaza de combinación git?
echar un vistazo a 'git commit --amend' a modifiy la última revert' cometer o 'git donde se puede ajustar el ID de la confirmación que desea recuperar. Youn puede ubicar la identificación del compromiso con 'git log' [Git Amend] (http://git-scm.com/book/es/Git-Basics-Undoing-Things) [Git Revert] (http: // gitready. com/intermediate/2009/03/16/rolling-back-changes-with-revert.html) – dasheddot