Skip to main content

Subir confirmaciones de cambios a un repositorio remoto

Usa git push para insertar confirmaciones realizadas en la rama local en un repositorio remoto.

Acerca de git push

El comando git push toma dos argumentos:

  • Un nombre remoto, por ejemplo, origin
  • Un nombre de rama, por ejemplo, main

Por ejemplo:

git push REMOTE-NAME BRANCH-NAME

Por ejemplo, normalmente se ejecuta git push origin main para insertar los cambios locales en el repositorio en línea.

Renombrar ramas

Para cambiar el nombre de una rama, tendría que usar el mismo comando git push, pero agregar un argumento más: el nombre de la nueva rama. Por ejemplo:

git push REMOTE-NAME LOCAL-BRANCH-NAME:REMOTE-BRANCH-NAME

Esto inserta LOCAL-BRANCH-NAME en REMOTE-NAME, pero se cambia el nombre a REMOTE-BRANCH-NAME.

Abordar errores sin avance rápido

Si la copia local de un repositorio está desincronizada, o "atrasada", con respecto al repositorio ascendente al que se realiza la inserción, recibirá un mensaje en el que se indica non-fast-forward updates were rejected. Esto significa que debe recuperar los cambios ascendentes antes de poder insertar los cambios locales.

Para más información sobre este error, consulta Tratamiento de errores sin avance rápido.

Subir etiquetas

De manera predeterminada, y sin parámetros adicionales, git push envía todas las ramas que coinciden para que tengan el mismo nombre que las ramas remotas.

Para subir una etiqueta única, puedes emitir el mismo comando que al subir una rama:

git push REMOTE-NAME TAG-NAME

Para subir todas tus etiquetas, puede escribir el comando:

git push REMOTE-NAME --tags

Eliminar una etiqueta o rama remota

La sintaxis para borrar una rama es un poco críptica a primera vista:

git push REMOTE-NAME :BRANCH-NAME

Nota que hay un espacio antes de los dos puntos. El comando se parece a los mismos pasos que realizaría para cambiar el nombre de una rama. Pero aquí le indica a Git que no inserte nada en BRANCH-NAME en REMOTE-NAME. Por este motivo, git push elimina la rama en el repositorio remoto.

Remotos y bifurcaciones

Es posible que ya sepa que puede "bifurcar" repositorios en GitHub.

Al clonar un repositorio de su propiedad, le proporciona una URL remota que le indica a Git dónde recuperar e insertar las actualizaciones. Si quiere colaborar con el repositorio original, tendría que agregar una nueva URL remota, normalmente llamada upstream, al clon de Git local:

git remote add upstream THEIR_REMOTE_URL

Ahora, puede capturar actualizaciones y ramas desde su bifurcación:

git fetch upstream
# Grab the upstream remote's branches
> remote: Counting objects: 75, done.
> remote: Compressing objects: 100% (53/53), done.
> remote: Total 62 (delta 27), reused 44 (delta 9)
> Unpacking objects: 100% (62/62), done.
> From https://HOSTNAME/OCTOCAT/REPO
>  * [new branch]      main     -> upstream/main

Cuando haya finalizado los cambios locales, puede insertar la rama local en GitHub e iniciar una solicitud de incorporación de cambios.

Para más información sobre cómo trabajar con bifurcaciones, consulta Sincronizar una bifurcación.

Información adicional