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://github.com/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.