Actualizar rama remota después de reescribir el historial

GitGitBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Git es un sistema de control de versiones poderoso que permite a los desarrolladores rastrear los cambios realizados en su repositorio de código. Una de las características clave de Git es la capacidad de reescribir el historial, lo que puede ser útil cuando necesites hacer cambios a commits anteriores. Sin embargo, reescribir el historial puede causar problemas al intentar empujar cambios a un repositorio remoto. En este laboratorio, aprenderás cómo actualizar una rama remota después de reescribir el historial localmente.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/CollaborationandSharingGroup(["Collaboration and Sharing"]) git/CollaborationandSharingGroup -.-> git/remote("Manage Remotes") subgraph Lab Skills git/remote -.-> lab-12734{{"Actualizar rama remota después de reescribir el historial"}} end

Actualizar rama remota después de reescribir el historial

Cuando reescribes el historial localmente, creas un nuevo commit con un hash SHA-1 diferente. Esto significa que el historial de commits en tu rama local es diferente al historial de commits en la rama remota. Si intentas empujar tus cambios a la rama remota, Git rechazará el empuje porque verá el historial de commits como divergido. Para resolver este problema, necesitas forzar una actualización de la rama remota.

Para completar este laboratorio, usarás el repositorio Git git-playground de tu cuenta de GitHub, que proviene de un fork de https://github.com/labex-labs/git-playground.git.

  1. Clona el repositorio git-playground en tu máquina local:
git clone https://github.com/your-username/git-playground.git
  1. Actualiza un commit con el mensaje "Added file2.txt" a un commit con el mensaje "Update file2.txt":
git commit --amend
  1. Empuja los cambios de la rama local al repositorio remoto:
git push
  1. Si no puedes empujarlo correctamente, forzará el empuje:
git push -f origin master

La bandera -f fuerza a Git a actualizar la rama remota con tus cambios, aunque el historial de commits haya divergido.

Este es el resultado final:

Resumen

En este laboratorio, aprendiste cómo actualizar una rama remota después de reescribir el historial localmente. Al usar el comando git push -f, puedes forzar a Git a actualizar la rama remota con tus cambios, incluso si el historial de commits ha divergido. Es importante usar este comando con precaución, ya que puede sobrescribir cambios realizados por otros desarrolladores.