Enviar una confirmación específica a un repositorio remoto

John Wachira 15 febrero 2024
Enviar una confirmación específica a un repositorio remoto

Este artículo describe el proceso de enviar una confirmación específica a un repositorio remoto en Git. Supongamos que tenemos un repositorio de Git con varias confirmaciones y solo necesitamos enviar una confirmación, ¿cómo haríamos esto?

Enviar una confirmación específica a un repositorio remoto

Para enviar una sola confirmación al repositorio remoto, usamos el comando Git push en el contexto que se muestra a continuación.

$ git push <remote> <commit id>:<remote branch>

Como siempre, emplearemos un ejemplo para ilustrar el concepto.

El siguiente ejemplo muestra un repositorio Demo con cuatro confirmaciones, como se muestra en la imagen a continuación.

historial de compromisos

Supongamos que queremos enviar la confirmación inicial al repositorio remoto. ¿Cómo lo haríamos?

Suponiendo que estamos ingresando al repositorio remoto por primera vez, seguiremos estos pasos.

Primero, agregaremos el repositorio remoto a nuestro repositorio local, como se muestra a continuación.

$ git remote add origin https://github.com/Wachira11ke/Demo.git

Para enviar el compromiso inicial al control remoto, ejecutaremos:

$ git push origin 6b0f31a:refs/heads/master

Dado que estamos empujando al control remoto por primera vez, necesitamos usar el argumento refs/heads/master para crear una rama master en el repositorio remoto. Este comando solo enviará nuestra confirmación Inicial al repositorio remoto.

¿Qué pasa si solo queremos enviar el primer compromiso, es decir, Actualizar licencias?

Ejecutar git push origin c87321d:master no tendrá el efecto deseado.

Esto se debe a que Git enviará todas las confirmaciones e incluirá la confirmación especificada. No queremos eso, ¿verdad?

Necesitamos reorganizar las confirmaciones para que la primera confirmación sea la última. Nuestro compromiso de Actualizar licencias debe venir inmediatamente después del Compromiso inicial.

Podemos hacer esto ejecutando el comando git rebase en el modo interactivo, como se muestra a continuación.

$ git rebase -i HEAD~3

Este comando abrirá un editor de texto. Usaremos el comando pick y reorganizaremos las confirmaciones, como se muestra a continuación.

git rebase

Ahora podemos salir del editor de texto y completar la reorganización. Nuestro historial de confirmación ahora debería verse así:

historial de compromisos 2

Ahora podemos enviar la confirmación al repositorio remoto, como se ilustra a continuación.

$ git push origin 20136f7:master

Nuestro repositorio remoto solo debe contener dos confirmaciones.

  1. El compromiso Compromiso inicial
  2. El commit de Actualizar Licencias.

Confirmemos nuestro caso.

repositorio remoto

Ahí tienes.

En conclusión, el git push <remote> <commit id>:<remote branch> nos permite enviar una confirmación específica al repositorio remoto.

Sin embargo, el comando empujará todas las confirmaciones hasta la confirmación especificada, inclusive. Para remediar esto, deberá reorganizar sus confirmaciones con el comando git rebase, como ilustramos.

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 Push