tag see remove drop create git atlassian-sourcetree

git - see - sourcetree login



Editar un mensaje de confirmaciĆ³n en SourceTree Windows(ya presionado a distancia) (3)

Actualizar

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.

Respuesta original

como yo estoy en Windows, no tengo una herramienta de línea de comando 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 mensaje de confirmación incorrecto en Git? , Git es lo suficientemente flexible como para que haya múltiples soluciones ... desde la línea de comandos.

SourceTree realmente podría venir con msysgit bash shell, o podría usar el shell de comandos estándar de Windows. De cualquier manera, lo abre desde SourceTree haciendo clic en el botón Terminal:

Establece qué terminal utiliza SourceTree (bash o Windows) aquí:

Una forma de resolver el problema en SourceTree

Dicho esto, esta es una forma de hacerlo en SourceTree. Como mencionaste en los comentarios que no te importa "volver a cometer errores" (por lo cual supongo que realmente quieres decir reiniciar, que es una operación diferente en Git), estos son los pasos:

  1. Realice un restablecimiento completo en SourceTree a la confirmación incorrecta haciendo clic derecho sobre él y seleccionando Reset current branch to this commit , y seleccionando la opción de restablecimiento completo del menú desplegable.
  2. Haga clic en el botón Confirmar, luego
  3. Haga clic en la casilla de verificación en la parte inferior que dice "Modificar último compromiso".
  4. Realice los cambios que desee en el mensaje y luego haga clic en Confirmar nuevamente. Voila!

En cuanto a este comentario :

si no es posible porque ya se envió a Bitbucket, no me importaría crear un nuevo repositorio y empezar de nuevo.

¿Esto significa que eres la única persona que trabaja en el repositorio? Esto es importante porque no es trivial cambiar el historial de un repositorio (como al modificar un compromiso) sin causar problemas a sus colaboradores. Sin embargo, suponiendo que usted es la única persona que trabaja en el repositorio, lo siguiente que le gustaría hacer es forzar su historia cambiada al control remoto.

Tenga en cuenta, 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 comando en la línea de comando 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 repositorio.

Sin embargo, en realidad debería aprender a usar Git desde la línea de comandos, eso le hará más competente en Git. #ProTip, use msysgit y active el modo de edición rápida en las propiedades del terminal, de modo que puede hacer doble clic para resaltar una línea de texto, hacer clic con el botón derecho para copiar y hacer clic con el botón secundario para pegar. Es bastante rápido.

¿Cómo edito un mensaje de confirmación incorrecto en SourceTree sin tocar la línea de comando?

Detalles adicionales:

  • Este no es el último compromiso.
  • Todo ya fue empujado a Bitbucket.
  • Este es un repositorio privado y yo soy el único colaborador.
  • No me importa perder ninguna de las confirmaciones anteriores, ya que puedo volver a comprometerlas en cualquier momento.
  • No obstante, no quiero perder ninguna modificación de código jamás realizada.

Salir:

  • Como parece imposible en este momento según sus comentarios y respuestas, voy a crear un nuevo repositorio y comenzar de nuevo. ¡Gracias a todos por su ayuda!

En la versión 1.9.6.1. Para la confirmación sin preparación.

  1. Haga clic en la descripción previamente comprometida
  2. Haz clic en el icono de Commit
  3. Ingrese el nuevo mensaje de confirmación y elija " Confirmar último de Ammend " en el menú desplegable Opciones de confirmación .
  4. Confirma tu mensaje

Estos son los pasos para editar el mensaje 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 :

Paso 1

Seleccione la confirmación inmediatamente antes de la confirmación que desea editar. Por ejemplo, si quiero editar la confirmación con el mensaje "¡FOOBAR!" entonces necesito seleccionar la confirmación que viene justo antes de ella:

Paso 2

Haga clic con el botón derecho en la confirmación seleccionada y haga clic en Rebase children...interactively :

Paso 3

Seleccione la confirmación que desea editar, luego haga clic en Edit Message en la parte inferior. En este caso, estoy seleccionando la confirmación con el mensaje "¡FOOBAR!":

Etapa 4

Edite el mensaje de confirmación y luego haga OK en OK . En mi ejemplo, he agregado "SHAZBOT! SKADOOSH!"

Paso 5

Cuando regrese a la ventana interactiva de rebase, haga clic en OK para finalizar la rebase:

Paso 6

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 línea de comandos para poder hacerlo.

Haga clic en Terminal desde la GUI para abrir una terminal.

Paso 7

Desde la fuerza de empuje terminal con el siguiente comando,

git push origin <branch> -f

donde <branch> es el nombre de la rama que desea insertar, y -f significa forzar la inserción. El empuje de fuerza sobrescribirá sus confirmaciones en su repositorio remoto, pero eso está bien en su caso ya que dijo que no está compartiendo su repositorio con otras personas.

¡Eso es! ¡Terminaste!