Se habla mucho acerca de cómo no es fácil "deshacer" una fusión en git. Versión corta: si deshace un commit de fusión, también le dice a git que nunca vuelva a fusionar esos cambios en el futuro.¿Cómo puedo hacer las combinaciones de git de tal manera que sean fáciles de revertir?
¿Hay algo que pueda hacer al hacer la fusión para solucionar este problema? Hay muchas situaciones en las que deshacer una combinación sería realmente útil en el curso normal del desarrollo de software y, lo que es más importante, en el control del estado de una rama de lanzamiento, cuando los cambios deben revertirse.
edición
he visto la solución en this article y realmente no considerarlo una solución, más de una explicación del problema. Requiere
- utilice siempre --no-ff
- recordar todos sus deshechos-fusiones cuando se quiere traer de vuelta en el código que depende de ellos (esto podría ser un par de horas, días, semanas, o meses en el futuro ...)
lo que quiero
Aquí es cómo funciona en Subversion. Digamos que tengo una rama llamada "release-candidate", que es lo que ejecutamos en el servidor de transición y donde probamos las características. Digamos que me fusiono en la característica Una rama. En Subversion, es todo un conjunto de cambios, y todo el historial de todos los archivos se fusiona. Digamos que no nos gusta, así que queremos sacarlo. Simplemente deshacemos ese único conjunto de cambios y no tenemos que pensar en nada más. Podemos fusionar la rama de características A nuevamente en cualquier momento en el futuro sin tener que recordar que en un momento lo fusionamos y lo sacamos.
Me gustaría poder acercarme lo más posible a ese flujo. Me gustaría optimizar para "no tener que recordar cosas en el futuro", incluso si hace que las cosas den más pasos en el camino de alguna manera. (Esto podría ser imposible ...)
¿Hay algún motivo por el que no pueda deshacer la confirmación mediante git reset --hard ORIG_HEAD? – urschrei
¿Mi respuesta necesita más información? –
urschrei: si lo hice en una rama en un servidor, entonces para presionar los resultados tendría que usar '--force', ¿verdad? –