Tengo dos ramas fuera de maestro, cada una para una característica diferente, y luego tengo una rama de síntesis que combina las dos. He dedicado algo a la rama de síntesis, pero ahora veo que preferiría aplicar ese cambio a una de las ramas propias de esa característica. ¿Hay alguna manera de hacer esto? Desaplicar/aplicar en otro lugar la maniobra con git?En git, ¿cómo elimino una confirmación de una rama y la aplico a una rama diferente?
21
A
Respuesta
27
Cherry-pick se compromete con la rama de destino y restablece la rama de origen. Suponiendo, que desea mover la última confirmación desde source
rama en target
, hacer:
git checkout target
git cherry-pick source
git checkout source
git reset --hard source^
Si el envío no fue la última, que tendrá que utilizar git rebase -i
en lugar de la última orden y selecciona específica de comprometerse nombre para su cherry-pick
.
2
En general, cuando hago algo como esto, yo:
- Crear un archivo de revisión inversa usando git diff (por ejemplo
git diff HEAD^ HEAD
) - Aplicar este parche inversa a la rama Quiero eliminar el cambio de.
- Mira la rama sí quiero el cambio en
- Uso
git cherry-pick
aplicar el aplicable cometer
Creo que hay una manera más fácil, pero yo prefiero esto ya que uso (y recordar) el diff/cherry-pick comandos mejor
+3
Pasos 1 + 2 == git revertir – Dustin
Cuestiones relacionadas
- 1. Cómo crear la rama a partir de una confirmación específica en una rama diferente
- 2. Git excluye una confirmación en una rama
- 3. ¿Cómo elimino una rama remota en Git?
- 4. ¿Cómo fusionar una rama a otra rama en GIT?
- 5. ¿Cómo elimino una rama de GitHub?
- 6. Cómo cambiar a una rama remota diferente en git
- 7. Mostrar la rama original para una confirmación
- 8. Al usar git, ¿cómo mueves algunos cambios no confirmados de una rama a otra rama en una carpeta diferente?
- 9. ¿Cómo elimino una rama de Git con TortoiseGit
- 10. Git: creó una nueva rama de la rama equivocada
- 11. Quitar confirmaciones de Git en una rama
- 12. ¿Cómo anotar una rama?
- 13. git clonar en una rama
- 14. ¿Cómo creo una nueva rama de Git a partir de una confirmación anterior?
- 15. Combinar/rebase una rama 'desconectada' en Git
- 16. ¿Cómo descargar una rama con git?
- 17. git eliminar archivos de una sola rama
- 18. sobrescritura y empujando una rama Git
- 19. rama SVN de una rama
- 20. Git: 1.List todos los archivos en una rama, archivos 2.compare de diferente rama
- 21. exportar un archivo desde una rama diferente de git
- 22. (git): ¿Cómo llevar la confirmación específica de la rama ascendente?
- 23. Administrar una rama de versión en Git
- 24. ¿Cómo respaldo una confirmación en git?
- 25. Mover una rama a una nueva etiqueta
- 26. ¿Cómo decir para qué rama era una confirmación github?
- 27. Cambiar raíz de una rama en git
- 28. Crear una nueva rama desde el maestro y luego revertir el master a una confirmación determinada
- 29. Git: Cómo mover los cambios desde la última confirmación a una nueva rama
- 30. Confirmar cambios en una rama diferente a la rama actualmente desprotegida con subversión
Gracias! Funciona genial. – prismofeverything
Tenga en cuenta que reset/rebase ambos hacen ** reescritura de la historia **, por lo que no deberían usarse si se publicó el historial, entonces tendría que usar git-revert en su lugar. –