Git Pull Origin Branch sobrescribe Master Branch

John Wachira 15 febrero 2024
Git Pull Origin Branch sobrescribe Master Branch

Este artículo ilustra cómo podemos revertir los cambios realizados en la rama maestra después de ejecutar el comando git pull origin <branch>. Digamos que tiene una rama maestra y una rama característica en sus repositorios locales y remotos.

Saca los cambios de la rama remota de características a su repositorio local, pero nota que está desprotegido en su rama maestra local.

¿Cómo hace para revertir los cambios realizados en la rama maestra y extraer los cambios en la rama característica?

Git Pull Origin <Branch> sobrescribe la rama principal

Para entender el concepto, vamos a replicar el escenario ilustrado arriba.

Suponiendo que tenemos cambios en nuestra rama remota de características que no están presentes en el repositorio local, ejecutaremos el comando git pull, como se ilustra a continuación, para incorporar los cambios a nuestro repositorio local.

$ git pull origin feature

función de origen de extracción de git

Tenga en cuenta que todavía estamos desprotegidos en nuestra rama maestra, pero idealmente, queremos llevar los cambios de la rama remota de características a la rama local de características. Tenga en cuenta que la acción anterior reducirá todas las confirmaciones de la rama remota a la rama maestra local y creará una confirmación de fusión.

¿Cómo hacemos para revertir nuestra rama maestra a su estado anterior e incorporar los cambios a la rama característica local?

Comenzaremos revirtiendo la rama maestra. Emplearemos el comando git reset --hard en este momento.

Podemos usar el comando para restablecer nuestra rama maestra de dos maneras.

Podemos usar el comando git reset --hard con la confirmación principal. La confirmación principal es simplemente la confirmación que estaba presente antes de la confirmación de combinación que resultó de la extracción.

Ejecute el comando git log --oneline y anote el SHA-1 de la confirmación principal. Tenga en cuenta qué confirmaciones se introdujeron desde la rama remota.

Para restablecer la rama maestra, ejecute el siguiente comando.

$ git reset --hard 11bd00c

Esto restablecerá nuestra rama maestra a su estado anterior antes de la extracción. Alternativamente, puede utilizar la referencia HEAD.

En este caso ejecutaremos lo siguiente:

$ git reset --hard HEAD~1

El comando anterior es la opción más segura, ya que usar la confirmación puede resultar confuso, especialmente si la extracción introduce varias confirmaciones. Ahora podemos proceder a nuestra sucursal local de características.

$ git checkout feature

Sabemos que el comando git pull combina los comandos git fetch y git merge FETCH_HEAD. Esto significa que ya tenemos los cambios de la rama de características remota, pero aún no se fusionaron en nuestra rama de características.

No necesitamos ejecutar el comando git pull origin feature nuevamente. En su lugar, podemos fusionar los cambios, como se ilustra a continuación.

$ git merge FETCH_HEAD

Esto actualizará nuestra rama local de características para que coincida con la rama remota de características.

En conclusión, si el comando git pull origin <branch> actualiza tu rama master por error, puedes revertir los cambios y moverlos a la rama correcta, como se mencionó anteriormente. El método anterior se aplica a todas las sucursales.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Artículo relacionado - Git Pull