Con SVN es fácil fusionar de forma inversa una confirmación, pero ¿cómo hacer eso con Git?Git: cómo fusionar de forma inversa una confirmación?
Respuesta
Para crear un nuevo comprometen a que '' deshace los cambios de un pasado comprometen, utilice:
$ git revert <commit>
también es posible que en realidad elimina un compromiso de un punto arbitrario en el pasado al volver a establecer la base de datos y luego restablecerlo, pero realmente no quieres hacer eso si ya has empujado tus commits a otro repositorio (o si alguien más ha sacado de ti).
Probablemente necesites suministrar la opción '-m
Jakub: eso es cierto si está revocando un commit de fusión, pero en la terminología de Subversion, "reverse-merge" es en realidad simplemente el nombre para revertir cualquier tipo de commit. –
Tenga en cuenta que usar '-m' significa que una fusión futura de la rama no fusionada no incluirá los cambios antes de esa fusión. Consulte http://schacon.github.com/git/howto/revert-a-faulty-merge.txt para conocer las formas adecuadas de volver a combinar una rama no fusionada. –
Si he entendido bien, usted está hablando de hacer un
svn merge -rn:n-1
a retirarse de una anterior comprometerse, en cuyo caso, usted está probablemente en busca de
git revert
Para revertir una fusión, debe usar: git revert -m. Así, por ejemplo, para revertir la reciente más funden confirmar utilizando el padre con el número 1 se debería utilizar:
git revert -m 1 HEAD
Para revertir una combinación de cometer antes de la última confirmación, puede hacer:
git revert -m 1 HEAD^
Uso git show <merge commit SHA1>
para ver a los padres, la numeración es el orden en que aparecen, por ejemplo Merge: e4c54b3 4725ad2
git documentación de fusión: http://schacon.github.com/git/git-merge.html
git discusión de combinación (confuso pero muy detallada): http://schacon.github.com/git/howto/revert-a-faulty-merge.txt
¿Cómo se puede obtener el 'número' asociado con el padre? ¿Las ramas tienen una "identificación" numérica intrínseca? – daniyalzade
Use 'git show
ejemplo:' git revert -m 1 SHA1' Ese comando funcionó para mí para revertir un commit de fusión que era varias confirmaciones de fusión antes de la cabecera y tenía muchas confirmaciones debajo. –
git reset --hard HEAD^
Usar el comando anterior para revertir fusionar los cambios.
Esto descarta el compromiso de fusión, que no hace lo que el cartel original está pidiendo. El OP intenta hacer un parche inverso para deshacer cambios previos, no borrar por completo el historial de los cambios anteriores. –
Si no quiere comprometerse, o quiere comprometerse más tarde (el mensaje del informe todavía será preparado para usted, que también se puede editar):
git revert -n <commit>
- 1. Cómo fusionar una confirmación específica en Git
- 2. git: mejor forma de revertir git sin confirmación revertida adicional
- 3. Rollback un Git fusionar
- 4. ¿Cómo respaldo una confirmación en git?
- 5. ¿Cómo puedo fusionar muchas confirmaciones, pero dejar una?
- 6. Git fusionar squash repetidamente
- 7. Git: fusionar conflicto y cometer mensaje
- 8. git diff única para fusionar cometer
- 9. Git excluye una confirmación en una rama
- 10. git fusionar diferentes repositorios?
- 11. ¿Restaurar una confirmación previa de git?
- 12. Git deshacer última confirmación
- 13. Git 4 vías fusionar
- 14. Revertir parte de una confirmación con git
- 15. ¿Cómo fusiono una única confirmación?
- 16. Cómo fusionar sucursales en Git por "trozo"
- 17. ¿Cómo eliminar la confirmación de git-notes?
- 18. ¿Cómo puedo "deshacer" una confirmación de Git revertida?
- 19. git: cómo volver a ordenar (severamente) una secuencia de confirmación
- 20. ¿Cómo reverso un trozo específico de una confirmación en git?
- 21. ¿Cómo puedo hacer una confirmación de Git en el pasado?
- 22. ¿Cómo eliminar una confirmación de huérfano en git?
- 23. ¿Cómo creo una confirmación sin un padre en Git?
- 24. Git - retroceso a una confirmación anterior
- 25. svn: ¿Cómo deshacer una fusión (sin confirmación)?
- 26. Git: ¿Cómo fusionar una rama pequeña pero muy antigua?
- 27. Git - Cómo fusionar una rama remota en el maestro remoto
- 28. ¿Cómo fusionar una rama a otra rama en GIT?
- 29. git - omitiendo confirmaciones específicas al fusionar
- 30. GIT - fusionar diferencia de las ramas
duplicados de [volver a una confirmación anterior Git ] (http://stackoverflow.com/questions/4114095/revert-to-a-previous-git-commit) –
No creo que esto se deba a la pregunta. Una fusión inversa en SVN también revierte los cambios de la confirmación a los cambios locales, por lo que puede editarlos y volver a cometer. – Dormouse