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 <REMOTENAME> <BRANCHNAME>
Como ejemplo, habitualmente ejecutas git push origin main
para subir tus cambios locales a tu repositorio en línea.
Renombrar ramas
Para renombrar una rama, utilizarías el mismo comando git push
, pero agregarías un argumento más: el nombre de la nueva rama. Por ejemplo:
git push <REMOTENAME> <LOCALBRANCHNAME>:<REMOTEBRANCHNAME>
Esto sube LOCALBRANCHNAME
a tu REMOTENAME
, pero es renombrado a REMOTEBRANCHNAME
.
Abordar errores sin avance rápido
Si tu copia local de un repositorio está desincronizada, o "atrasada", con respecto al repositorio ascendente al que estás subiendo, recibirás un mensaje que dice que non-fast-forward updates were rejected (las actualizaciones sin avance rápido se rechazaron)
. Esto significa que debes recuperar, o "extraer", los cambios ascendentes, antes de poder subir tus cambios locales.
Para obtener más información sobre este error, consulta "Resolver errores sin avance rápido."
Subir etiquetas
Por defecto, 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 <REMOTENAME> <TAGNAME>
Para subir todas tus etiquetas, puede escribir el comando:
git push <REMOTENAME> --tags
Eliminar una etiqueta o rama remota
La sintaxis para borrar una rama es un poco críptica a primera vista:
git push <REMOTENAME> :<BRANCHNAME>
Nota que hay un espacio antes de los dos puntos. El comando se parece a los mismos pasos que tomarías para renombrar una rama. Sin embargo, aquí estás informándole a Git que no suba nada dentro de BRANCHNAME
en REMOTENAME
. Debido a esto, git push
elimina la rama en el repositorio remoto.
Remotos y bifurcaciones
Posiblemente ya sepas que puedes "bifurcar" repositorios en GitHub.
Cuando clonas un repositorio de tu propiedad, le proporcionas una URL remota que le indica a Git dónde extraer y subir actualizaciones. Si deseas colaborar con el repositorio original, agregarías una nueva a URL remota, normalmente llamada upstream
(ascendente), a tu clon de Git local:
git remote add upstream <THEIR_REMOTE_URL>
Ahora, puedes extraer actualizaciones y ramas de sus bifurcaciones:
git extrae ascendente
# Toma las ramas de los remotos ascendentes
> remoto: Contando objetos: 75, realizado.
> remote: Compressing objects: 100% (53/53), done.
> remoto: Total 62 (delta 27), reutilizados 44 (delta 9)
> Descompimiendo objetos: 100 % (62/62), realziado.
> From https://nombre de host/octocat/repo
> * [new branch] main -> upstream/main
Cuando hayas finalizado tus cambios locales, puedes subir tu rama local a GitHub e iniciar una solicitud de extracción.
Para obtener más información sobre cómo trabajar con bifurcaciones, consulta "Sincronizar una bifurcación".
Leer más
- El capítulo "Remotos" del libro "Pro Git"
- Documentación en línea sobre
git remote
- "Git cheatsheet" (Hoja introductoria de Git)
- "Flujos de trabajo de Git"
- "Manual de Git"