Mueva el puntero de rama de Git a una confirmación diferente

John Wachira 15 febrero 2024
  1. Mueva el puntero de la rama de Git a una confirmación diferente mientras está desprotegido en la rama de destino
  2. Mueva el puntero de la rama de Git a una confirmación diferente mientras no esté desprotegido en la rama de destino
Mueva el puntero de rama de Git a una confirmación diferente

Este artículo ilustra cómo podemos mover un puntero de rama de Git a una confirmación diferente. Veremos cómo podemos mover el puntero mientras está desprotegido y no desprotegido en la rama de destino.

Comencemos con el más simple.

Mueva el puntero de la rama de Git a una confirmación diferente mientras está desprotegido en la rama de destino

El siguiente ejemplo muestra una rama de característica en nuestro repositorio. Aquí está el historial de confirmación.

historial de compromisos

Queremos mover el puntero de bifurcación de la confirmación 4ee91ac a la confirmación e65841a (es decir, HEAD@ {2}). ¿Cómo hacemos esto?

Como estamos desprotegidos en la rama característica, nuestro destino, podemos ejecutar el comando git reset, como se muestra a continuación.

$ git reset --hard e65841a

Producción :

HEAD is now at e65841a Update README.md

Esto moverá nuestra referencia al compromiso especificado. Bastante sencillo, ¿verdad?

Pasemos al siguiente escenario.

Mueva el puntero de la rama de Git a una confirmación diferente mientras no esté desprotegido en la rama de destino

Pasemos a la rama maestra. ¿Cómo podemos mover el puntero de rama para la rama característica mientras está desprotegido en la rama maestra?

Hay dos métodos disponibles. Comenzaremos con el más fácil.

el comando git branch

Esta es la sintaxis básica del comando para este escenario.

$ git branch -f <branch-name> <commit-hash>

En este escenario, queremos mover el puntero a la confirmación afcc8bb. ¿Cómo lo hacemos?

Como se muestra a continuación, podemos mover el puntero de nuestra rama feature con el comando git branch.

$ git branch -f feature afcc8bb

Esto debería mover el puntero a la confirmación especificada. Confirmemos nuestro caso.

función git branch -f

Es tan simple como eso. Veamos el otro método.

el comando git update-ref

Como se muestra a continuación, podemos usar el comando git update-ref para mover el puntero de la rama.

$ git update-ref -m "reset: Reset <branch-name> to <sha1-commit-hash>" refs/heads/<branch-name> <sha1-commit-hash>

Queremos mover el puntero más allá de la confirmación 124bfa9. Así es como lo haremos.

Primero, volvamos a la rama maestra. Luego ejecutaremos el comando, como se muestra a continuación.

$ git update-ref -m "reset: Reset feature to 124bfa9" refs/heads/feature 124bfa9

El comando anterior moverá el puntero y agregará un mensaje al registro para nuestra rama característica. Confirmemos nuestro caso.

actualización de git-ref

Ahí tienes.

En pocas palabras, Git nos permite mover el puntero de la rama mientras está desprotegido y no desprotegido en la rama de destino. Hemos cubierto diferentes comandos para ambos escenarios.

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 Branch