¿Cómo edito un post de confirmación incorrecto en SourceTree sin tocar la línea de command?
Detalles adicionales:
Salir:
Estos son los pasos para editar el post de confirmación de una confirmación previa ( que no es la confirmación más reciente ) utilizando SourceTree para Windows versión 1.5.2.0 :
Seleccione la confirmación inmediatamente antes de la confirmación que desea editar. Por ejemplo, si quiero editar la confirmación con el post "¡FOOBAR!" entonces necesito seleccionar la confirmación que viene justo antes de ella:
Haga clic con el button derecho en la confirmación seleccionada y click Rebase children...interactively
:
Seleccione la confirmación que desea editar, luego click Edit Message
en la parte inferior. En este caso, estoy seleccionando la confirmación con el post "¡FOOBAR!":
Edite el post de confirmación y luego haga OK
en OK
. En mi ejemplo, he agregado "SHAZBOT! SKADOOSH!"
Cuando regrese a la window interactiva de rebase, click OK
para finalizar la rebase:
Llegados a este punto, deberás forzar tus nuevos cambios ya que has confirmado los commits que ya has aplicado. Sin embargo, la versión 1.5.2.0 actual de SourceTree para Windows no le permite presionar forzar a través de la GUI, por lo que tendrá que usar Git desde la command-line para poder hacerlo.
Haga clic en Terminal
desde la GUI para abrir una terminal.
Desde la fuerza de empuje terminal con el siguiente command,
git push origin <branch> -f
donde <branch>
es el nombre de la twig que desea insert, y -f
significa forzar la inserción. El empuje de fuerza sobrescribirá sus confirmaciones en su repository remoto, pero eso está bien en su caso ya que dijo que no está compartiendo su repository con otras personas.
¡Eso es! ¡Terminaste!
En la versión 1.9.6.1. Para la confirmación sin preparación.
Nota: esta respuesta se escribió originalmente con respecto a las versiones anteriores de SourceTree para Windows, y ahora está desactualizada.
Vea mi nueva respuesta para la versión actual de SourceTree para Windows, 1.5.2.0 . Dejo esta respuesta atrás para propósitos históricos.
como yo estoy en Windows, no tengo una herramienta de línea de command ni sé cómo usar uno 🙁 ¿Es la única manera de resolverlo? ¿La GUI no cubre todas las funciones de git? – Original Poster
En cuanto a las GUI de Git, no, no cubren todas las funciones de Git . Ni siquiera se acercan . Le sugiero que revise una de las respuestas en ¿Cómo edito un post de confirmación incorrecto en Git? , Git es lo suficientemente flexible como para que haya múltiples soluciones … desde la command-line.
SourceTree realmente podría venir con msysgit bash shell, o podría usar el shell de commands estándar de Windows. De cualquier manera, lo abre desde SourceTree haciendo clic en el button Terminal:
Establece qué terminal utiliza SourceTree (bash o Windows) aquí:
Dicho esto, esta es una forma de hacerlo en SourceTree. Como mencionaste en los comentarios que no te importa "volver a cometer errores" (supongo que realmente quieres decir reiniciar, que es una operación diferente en Git), estos son los pasos:
Reset current branch to this commit
, y seleccionando la opción de restablecimiento completo del menu desplegable. En cuanto a este comentario :
si no es posible porque ya se envió a Bitbucket, no me importaría crear un nuevo repository y empezar de nuevo.
¿Esto significa que eres la única persona que trabaja en el repository? Esto es importante porque no es trivial cambiar el historial de un repository (como al modificar un compromiso) sin causar problemas a sus queueboradores. Sin embargo, suponiendo que usted es la única persona que trabaja en el repository, lo siguiente que le gustaría hacer es forzar su historia cambiada al control remoto.
Tenga en count, sin embargo, que debido a que hizo un restablecimiento completo a la confirmación errónea, entonces forzar la fuerza hace que pierda todo el trabajo que viene después. Si está bien, puede que necesite usar el siguiente command en la línea de command para hacer el empuje de fuerza, porque no pude encontrar una opción para hacerlo en SourceTree:
git push remote-repo head -f
Esto también supone que BitBucket le permitirá forzar el envío a un repository.
Sin embargo, en realidad debería aprender a usar Git desde la command-line, eso le hará más competente en Git. #ProTip, use msysgit y active el modo de edición rápida en las properties del terminal, de modo que puede hacer doble clic para resaltar una línea de text, hacer clic con el button derecho para copyr y hacer clic con el button secundario para pegar. Es bastante rápido.