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, sueles ejecutar git push origin main
para empujar tus cambios localesa tu repositorio online.
Renombrar ramas
Para renombrar una rama, utilizarías el mismo comando git push
, pero añadirías un argumento más: el nombre de la nueva rama. Por ejemplo:
git push <REMOTENAME> <LOCALBRANCHNAME>:<REMOTEBRANCHNAME>
Esto empuja el LOCALBRANCHNAME
a tu REMOTENAME
, pero se renombra a REMOTEBRANCHNAME
.
Cómo lidiar con errores «no rápidos»
Si tu copia local de un repositorio no está sincronizada con, o está «detrás» del repositorio upstream al que estás empujando, recibirás un mensaje que dice non-fast-forward updates were rejected
.Esto significa que debes recuperar, o «fetch», los cambios del upstream, antes de que seas capaz de empujar tus cambios locales.
Para más información sobre este error, consulta «Cómo lidiar con los errores no fast-forward.»
Pulsando etiquetas
Por defecto, y sin parámetros adicionales, git push
envía todas las ramas coincidentesque tienen los mismos nombres que las ramas remotas.
Para empujar una sola etiqueta, puedes emitir el mismo comando que para empujar una rama:
git push <REMOTENAME> <TAGNAME>
Para empujar todas las etiquetas, puedes escribir el comando:
git push <REMOTENAME> --tags
Borrar una rama o etiqueta remota
La sintaxis para borrar una rama es un poco arcana 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 darías para renombrar una rama. Sin embargo, aquí le estás diciendo a Git que no empuje nada dentro de BRANCHNAME
en REMOTENAME
. Debido a esto, git push
elimina la rama en el repositorio remoto.
Remotos y forks
Es posible que ya sepas que puedes hacer «forks» de repositorios en GitHub.
Cuando clonas un repositorio propio, le proporcionas una URL remota que le dice aGit dónde obtener y empujar las actualizaciones. Si quieres colaborar con el repositorio original, añadirás una nueva URL remota, normalmente llamada upstream
, a tu clon local de Git:
git remote add upstream <THEIR_REMOTE_URL>
Ahora, puedes obtener actualizaciones y ramas de su fork:
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> * main -> upstream/main
Cuando hayas terminado de hacer cambios locales, puedes empujar tu rama local a GitHub e iniciar un pull request.
Para más información sobre cómo trabajar con forks, consulta «Sincronizar un fork».
Lectura adicional
- El capítulo «Remotes» del libro «Pro Git»
-
git remote
página man - «Git cheatsheet»
- «Git workflows»
- «Git Handbook»
.