Editar historial con una rebase interactiva
Una rebase interactiva reescribe las confirmaciones encima de una elegida: mantener, reformular, editar, aplastar, arreglar o soltar cada una y arrastrarlas a un nuevo orden, como git rebase -i. Para un solo cambio, Edit History en el menú de confirmación lo hace en un solo paso.
Funciona en GitTree Gratis: todas las funciones locales de Git, una vez que hayas iniciado sesión.
En esta página
Antes de empezar
- Las confirmaciones para reescribir están en su rama actual, sin ninguna confirmación de fusión entre ellas.
- Prefiere confirmaciones que no hayas enviado: las confirmaciones reescritas obtienen nuevos identificadores.
donde encontrarlo
- Haga clic derecho en la confirmación justo debajo de las que desea cambiar: Edit History › Interactive Rebase of the Commits Above….
- Ediciones en un solo paso en el mismo menú Edit History: Edit Commit Message…, Drop Commit…, Move Commit Up y Move Commit Down.
- Seleccione varias confirmaciones y luego haga clic derecho: Squash Commits….
| acción | macOS | Windows y Linux |
|---|---|---|
| Undo toda la rebase | ⌘Z | Ctrl+Z |
Pasos
Abre el editor
Haga clic derecho en la confirmación debajo de las que desea cambiar y elija Edit History › Interactive Rebase of the Commits Above…. La confirmación más antigua está en la parte superior, en el orden en que se reproducen.

Cada paso tiene una acción; aquí una confirmación se combina con la anterior y otra se reformula.GitTree interfaz con un repositorio de demostración. Elija una acción para cada confirmación
Establezca Action en cada paso: Pick lo conserva, Reword cambia su mensaje, Edit se detiene allí para que pueda modificarlo, Squash y Fixup lo incorpora a la confirmación anterior, Drop lo omite.
Reordenar si es necesario
Arrastre un paso por su controlador o céntrelo y presione Alt+ ↑ o Alt+↓. Las letras también funcionan: p, r, e, s, f y d marcan las acciones.
Iniciar la rebase
Presione Start Rebase. Si algunas confirmaciones ya están en un control remoto, confirme reescribirlas primero. GitTree dice Rebase finished. Undo can put the branch back.
Resultado esperado
La rama contiene las confirmaciones reescritas, con nuevos identificadores. La antigua sucursal se mantiene en refs/ogt/trash.
Qué hace cada acción
| acción | Resultado |
|---|---|
| Pick | El compromiso permanece como está. |
| Reword | Mismos cambios, nuevo mensaje que escribes en el editor. |
| Edit | La rebase se detiene después de esta confirmación para que pueda modificarla y luego continuar desde el banner. |
| Squash | Doblado en el compromiso anterior; Los mensajes se combinan. |
| Fixup | Doblado en el compromiso anterior; su propio mensaje es descartado. Fixup, use its message conserva el mensaje de este. |
| Drop | Quedado fuera de la sucursal. |
Si algo sale mal
"Estas confirmaciones incluyen una fusión, por lo que sólo se pueden mostrar aquí, no reescribirlas".
La rebase interactiva en GitTree reescribe únicamente el historial lineal. Comience desde una confirmación encima de la fusión.
"Paso... se aplasta en la nada: muévalo debajo de un compromiso mantenido".
Una calabaza o una reparación necesita un compromiso encima para poder plegarse. Muévalo o cambie el primer paso a Seleccionar.
Preguntas
¿Cómo convierto varios commits en uno?
Selecciónelos en el gráfico y elija Squash Commits…: el diálogo de Squash muestra el resultado, el mensaje y los coautores primero. O establezca cada confirmación después de la primera en Squash o Fixup en el editor.