Saltar al contenido

Cómo realizar rebase (squash) usando tortoisegit

este problema se puede tratar de diversas formas, pero te enseñamos la que en nuestra opinión es la resolución más completa.

Solución:

Esto me funciona usando TortoiseGit 1.7.12:

  1. Haga clic con el botón derecho en el directorio de trabajo en el que desea realizar una reorganización interactiva y elija TortoiseGit -> Show log del menú contextual.
  2. En el cuadro de diálogo “Registrar mensajes” que aparece, haga clic con el botón derecho en la confirmación más reciente que desee. no Me gusta rebase más y elegir Rebase master onto this... del menú contextual.
  3. En el cuadro de diálogo “Rebase” que aparece, marque la Force Rebase casilla de verificación y luego haga clic con el botón derecho en la confirmación para elegir entre Pick, Squashetc., o marque la casilla Squash ALL casilla de verificación en su caso.
  4. presione el Start Rebase botón, que en caso de éxito se convierte en un Commit y luego en un Done botón. Presiona todos ellos.

Tenga en cuenta que en su secuencia de comandos de ejemplo, aplastaría / arreglaría la confirmación raíz, que es un caso especial y no funciona como se describe anteriormente porque la confirmación raíz no tiene un padre que pueda seleccionar en el paso 2.

Puede combinar dos confirmaciones adyacentes usando la GUI de la siguiente manera. Recuerde no combinar confirmaciones ya en el repositorio compartido. Ver:
Haz clic derecho en 2 confirmaciones

Esto es lo que hice usando Tortoise Git y almacenando el repositorio en Assembla (que aparentemente es similar a GitHub).

Decidí que quería eliminar efectivamente todo mi historial de confirmaciones y comenzar el repositorio desde cero. Podría haber eliminado la carpeta git local y el repositorio correspondiente en Assembla, y luego recrearlo, pero pensé que era mejor averiguar cómo hacerlo de la “manera correcta”.

Entonces, así es como lo logré:

1) Usando Tortoise Git, muestre el registro del repositorio. Resalte todas las confirmaciones, haga clic derecho sobre ellas y seleccione “combinar en una confirmación”.

2) En el cuadro de diálogo que aparece, elimine el comentario de confirmación (que se convierte en una combinación de todos los comentarios anteriores) y reemplácelo con un solo comentario, por ejemplo, REBASE. Luego inicie la confirmación. El repositorio local se iniciará efectivamente desde cero (con todos los archivos aún agregados, por supuesto) sin tener que eliminarlo y volver a crearlo.

3) Desafortunadamente, no puedes enviarlo a Assembla. Rechazará esto, insistiendo en que su “cabeza” está detrás de la rama remota. Entonces, para resolver eso, primero vaya a la página “Configuración” para el repositorio en Assembla. Habilite “Permitir -forzar empuje”.

4) Ahora realice un “empuje forzado”. No sé si Tortoise Git tiene una opción de interfaz gráfica de usuario para esto, pero es fácil de hacer a través del símbolo del sistema:

cd [your repo folder]
git push -f origin

¡Hecho!

ACTUALIZAR:

Para “forzar la inserción” con TortoiseGit, en el cuadro de diálogo de inserción hay casillas de verificación para forzar “cambios conocidos” y “cambios desconocidos”. No estoy seguro de cuál es la diferencia, pero ambos dan como resultado el uso del interruptor git –force. Pruebe con “cambios conocidos” para empezar.

Calificaciones y comentarios

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *