{"meta":{"title":"Acerca del rebase de Git","intro":"El comando git rebase te permite cambiar fácilmente una serie de confirmaciones, modificando el historial de tu repositorio. Puedes reordenar, editar o combinar confirmaciones.","product":"Comienza","breadcrumbs":[{"href":"/es/enterprise-cloud@latest/get-started","title":"Comienza"},{"href":"/es/enterprise-cloud@latest/get-started/using-git","title":"Utilizar GitHub"},{"href":"/es/enterprise-cloud@latest/get-started/using-git/about-git-rebase","title":"Acerca del rebase de Git"}],"documentType":"article"},"body":"# Acerca del rebase de Git\n\nEl comando git rebase te permite cambiar fácilmente una serie de confirmaciones, modificando el historial de tu repositorio. Puedes reordenar, editar o combinar confirmaciones.\n\nNormalmente, se usaría `git rebase` para lo siguiente:\n\n* Editar mensajes de confirmación previos.\n* Combinar varios commits en uno.\n* Eliminar o revertir confirmaciones que ya no son necesarias.\n\n> \\[!WARNING]\n> Dado que cambiar el historial de confirmaciones puede dificultar las cosas para todos los que usan el repositorio, se considera una mala práctica rebasear las confirmaciones cuando ya las has enviado a un repositorio. Aprende a hacer un rebase de forma segura con [Fusiones de solicitudes de incorporación de cambios](/es/enterprise-cloud@latest/pull-requests/reference/pull-request-merges).\n\n## Cambiar de base las confirmaciones con una rama\n\nPara cambiar de base todas las confirmaciones entre otra rama y el estado de rama actual, puedes ingresar el siguiente comando en tu shell (ya sea el símbolo del sistema para Windows o la terminal para Mac y Linux):\n\n```shell\ngit rebase --interactive OTHER-BRANCH-NAME\n```\n\n## Cambiar de base las confirmaciones en un momento específico\n\nPara rebasear los últimos commits en tu rama actual, puedes introducir el siguiente comando en el shell.\n\n```shell\ngit rebase --interactive HEAD~7\n```\n\n## Comandos disponibles mientras se cambia de base\n\nHay seis comandos disponibles mientras se cambia la base:\n\n<dl>\n<dt><code>pick</code></dt>\n<dd>\n<code>pick</code> simplemente significa que se incluye el commit. Reordenar los comandos <code>pick</code> cambia el orden de las confirmaciones cuando la fusión mediante cambio de base está en curso. Si eliges no incluir una confirmación, debes eliminar la línea completa. </dd>\n\n<dt><code>reword</code></dt>\n<dd>El comando <code>reword</code> es similar a <code>pick</code>, pero después de usarlo, el proceso de reorganización se pausará y le permitirá modificar el mensaje de commit. Los cambios realizados por el commit no se ven afectados. </dd>\n\n<dt><code>edit</code></dt>\n<dd>Si elige realizar <code>edit</code> en una confirmación, se le dará la oportunidad de modificar la confirmación, lo que significa que puede agregar o cambiar la confirmación por completo. También puedes realizar más confirmaciones antes de continuar con el cambio de base. Esto te permite dividir una confirmación grande en otras más pequeñas o eliminar cambios erróneos hechos en una confirmación. </dd>\n\n<dt><code>squash</code></dt>\n<dd>Este comando te permite combinar dos o más confirmaciones en una única confirmación. Una confirmación se combina en la confirmación de arriba. Git te da la oportunidad de escribir un mensaje de confirmación nuevo describiendo ambos cambios.</dd>\n\n<dt><code>fixup</code></dt>\n<dd>Esto es similar a <code>squash</code>, pero el commit que se va a combinar tiene su mensaje descartado. La confirmación simplemente se fusiona en la confirmación de arriba y el mensaje de la confirmación anterior se usa para describir ambos cambios.</dd>\n\n<dt><code>exec</code></dt>\n<dd>Esto te permite ejecutar comandos shell arbitrarios contra un commit.</dd>\n</dl>\n\n## Un ejemplo de uso de `git rebase`\n\nIndependientemente del comando que use, Git iniciará [el editor de texto predeterminado](/es/enterprise-cloud@latest/get-started/git-basics/associating-text-editors-with-git) y abrirá un archivo que detalla las confirmaciones en el intervalo que haya elegido. Ese archivo se ve así:\n\n```text\npick 1fc6c95 Patch A\npick 6b2481b Patch B\npick dd1475d something I want to split\npick c619268 A fix for Patch B\npick fa39187 something to add to patch A\npick 4ca2acc i cant' typ goods\npick 7b36971 something to move before patch B\n\n# Rebase 41a72e6..7b36971 onto 41a72e6\n#\n# Commands:\n#  p, pick = use commit\n#  r, reword = use commit, but edit the commit message\n#  e, edit = use commit, but stop for amending\n#  s, squash = use commit, but meld into previous commit\n#  f, fixup = like \"squash\", but discard this commit's log message\n#  x, exec = run command (the rest of the line) using shell\n#\n# If you remove a line here THAT COMMIT WILL BE LOST.\n# However, if you remove everything, the rebase will be aborted.\n#\n```\n\nDesglosando esta información, de principio a fin, vemos que:\n\n* Se enumeran siete confirmaciones, lo que indica que hubo siete cambios entre nuestro punto de partida y el estado de nuestra rama actual.\n* Las confirmaciones que eliges cambiar de base se clasifican en el orden de los cambios más antiguos (arriba) a los cambios más nuevos (abajo).\n* Cada línea muestra un comando (de manera predeterminada, `pick`), el SHA de confirmación y el mensaje de confirmación. Todo el procedimiento `git rebase` se centra en la manipulación de estas tres columnas. Los cambios realizados se *fusionan mediante cambio de base* en el repositorio.\n* Después de las confirmaciones, Git le indica el intervalo de confirmaciones con las que estamos trabajando (`41a72e6..7b36971`).\n* Finalmente, Git te ayuda diciéndote los comandos que están disponibles para ti cuando cambias de base las confirmaciones.\n\n## Información adicional\n\n* [Utilizar la rebase de Git en la línea de comando](/es/enterprise-cloud@latest/get-started/using-git/using-git-rebase-on-the-command-line)\n* [El capítulo \"Creación de ramas en Git\" del libro *Pro Git*](https://git-scm.com/book/en/v2/Git-Branching-Rebasing)\n* ```\n            [El capítulo Rebase interactivo del libro _Pro Git_](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History#_changing_multiple)\n  ```\n* ```\n            [Agrupación de confirmaciones con rebase](http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html)\n  ```\n* [Sincronización de tu rama en GitHub Desktop](/es/desktop/working-with-your-remote-repository-on-github-or-github-enterprise/syncing-your-branch-in-github-desktop) en la GitHub Desktop documentación"}