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.
Resolución de confirmaciones bloqueadas
Para mantener la seguridad del repositorio en el que vas a realizar la inserción, la protección de inserción de GitHub te protege automáticamente de la confirmación accidental de secretos en repositorios públicos en GitHub.com. Los secretos expuestos pueden suponer graves riesgos de seguridad para el repositorio y la cadena de suministro. Si GitHub detecta que la confirmación que intentas insertar contiene un secreto admitido, la bloquea. Para resolver el bloqueo, debes hacer lo siguiente:
- Quita el secreto de la confirmación. Para obtener más información, consulta Resolución de una inserción bloqueada.
- Seguir la dirección URL proporcionada a fin de ver las opciones para permitir la inserción. Para más información, consulta Omisión de la protección de inserción
Para más información sobre la protección de inserción, consulta Protección de inserción para usuarios.
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.