Las ramas en Git son líneas de desarrollo independientes en un proyecto. Al trabajar en una copia local del repositorio, puedes crear nuevas ramas en el repositorio local que aún no existen en el remoto hasta que envíes los cambios.
En este tutorial, aprenderás cómo enviar una rama a un repositorio remoto en Git. ¿Cómo envío una rama al remoto en Git? Enviar una rama a un repositorio remoto permite a los desarrolladores compartir su trabajo con otros colaboradores en el proyecto. De esta manera, otros desarrolladores pueden implementar características o correcciones de errores en su propio trabajo o revisar tus cambios.
Las secciones a continuación muestran diferentes opciones para enviar una rama a un repositorio remoto.
Enviar la Rama Principal al Remoto
La rama principal (o master) es la rama predeterminada que Git crea automáticamente cuando inicializas un repositorio. Si has creado un repositorio localmente y necesitas enviar la rama principal a un remoto, probablemente estés enviando cambios por primera vez.
Sigue los pasos a continuación para enviar la rama principal al remoto y asegurarte de que los archivos estén en el índice de seguimiento y que hayan sido confirmados.
Paso 1: Verifica si Git está siguiendo todos los archivos necesarios
Ejecuta el siguiente comando para verificar si Git está siguiendo todos los archivos en el repositorio:
git status
La salida muestra si hay archivos en el repositorio que Git no está siguiendo. Si los hay, añade todos los archivos al índice de seguimiento ejecutando:
git add .
Paso 2: Confirma los cambios en la rama local
Asegúrate de que todos los cambios del repositorio local hayan sido confirmados. Usa la siguiente sintaxis para crear un commit:
git commit -m "<mensaje del commit>"
Paso 3: Obtiene los cambios del repositorio remoto
Si ya has configurado un repositorio remoto y alguien más está trabajando en el proyecto, asegúrate de obtener y fusionar los últimos cambios.
git pull
Si aún no has configurado un repositorio remoto, omite este paso. Cuando no hay diferencia entre el repositorio remoto y el local, la salida lo indica. Si hay cambios, Git los fusiona. Sin embargo, es posible que haya conflictos de fusión, así que resuelve los conflictos primero para completar la fusión.
Paso 4: Agrega el servidor remoto
Si aún no has configurado el servidor remoto, agrégalo a tu repositorio usando la siguiente sintaxis:
git remote add origin <remote_url>
Por ejemplo:
Paso 5: Cambia a la rama master
Asegúrate de cambiar a la rama que quieres enviar, en este caso la rama main/master. Usa git switch o git git checkout:
git checkout master
Paso 6: Envía la rama
Después de cambiar a la rama master, envíala al remoto usando la siguiente sintaxis:
git push -u <remote_name> <branch_name>
La bandera -u añade la referencia de seguimiento (upstream) para cada rama que envíes con éxito.
git push -u origin master
Si es la primera vez que envías la rama al repositorio remoto, Git crea la rama y añade todos los cambios. Si la rama ya existe, Git la actualiza.
Enviar una Rama con un Nombre Diferente al Remoto
Git te permite enviar una rama local a una remota con un nombre diferente. Sigue los pasos a continuación:
Paso 1: Obtiene los cambios
Asegúrate de que tu repositorio local tenga todos los cambios contenidos en el remoto. Ejecuta el siguiente comando:
git pull
Si todo está actualizado, la salida lo indica. De lo contrario, los cambios se descargan y se fusionan en tu repositorio.
Paso 2: Cambia a la rama objetivo
Cambia a la rama que quieres enviar al repositorio remoto. La sintaxis es:
git switch <branch_name>
Por ejemplo:
Paso 3: Envía la rama al remoto
Usa el comando git push para enviar una rama local a una remota con un nombre diferente. Especifica el nombre de la rama local y el nombre remoto separados por dos puntos. La sintaxis es:
git push <remote_repository> <local_branch>:<remote_branch>
Por ejemplo:
git push origin new-feature:feature
El comando envía la rama new-feature a la rama feature en el repositorio remoto origin.
Enviar Cambios a Otra Rama
Git permite a los usuarios enviar los cambios a otra rama en el repositorio remoto especificando el nombre remoto, el nombre de la rama local y el nombre de la rama remota. Sigue los pasos en las secciones a continuación.
Paso 1. Obtiene los cambios del remoto
Antes de enviar cambios al repositorio remoto, realiza una operación de pull para obtener cualquier cambio de la rama remota e integrarlos en tu rama local actual:
git pull
Paso 2. Cambia a la rama que quieres enviar
Usa git switch o git checkout:
git switch <branch_name>
Paso 3. Fusiona con la rama remota
Fusiona la rama local con la rama remota upstream. Para que la fusión tenga éxito, la punta de la rama remota no puede estar detrás de la rama que quieres enviar. La sintaxis es:
git merge <remote_name>/<remote_branch>
Por ejemplo, para fusionar con la rama feature en el repositorio remoto origin, ejecuta:
git merge origin/feature
Resuelve cualquier conflicto de fusión que pueda surgir.
Paso 4. Envía los cambios
Usa la siguiente sintaxis para enviar los cambios a la rama especificada:
git push <remote_name> <local_branch>:<remote_branch>
Por ejemplo, para enviar la rama my-feature a la rama feature remota, ejecuta:
git push origin my-feature:feature
Enviar Rama a Repositorio Personalizado
El comando git push también te permite enviar una rama a una rama remota personalizada, no solo a la definida como origin. Sigue los pasos a continuación para agregar un nuevo remoto y enviar tus cambios a ese repositorio personalizado.
Paso 1. Agrega un nuevo remoto
Verifica qué remotos están definidos en tu repositorio ejecutando:
git remote -v
Para agregar un remoto personalizado, usa el comando git remote add y especifica un nombre de repositorio único y una URL. La sintaxis es:
git remote add <remote_name> <remote_URL>
Por ejemplo:
git remote add personalizado https://github.com/bosko-pnap/custom.git
Ejecutando git remote -v nuevamente muestra que el nuevo remoto ha sido añadido a la lista.
Paso 2. Envía los cambios al repositorio personalizado
Para publicar tus cambios en un remoto personalizado, usa el comando git push y especifica el nombre remoto correcto y qué rama quieres enviar. La sintaxis es:
git push <remote_name> <branch_name>
Por ejemplo:
git push custom my-feature
El comando envía la rama new-feature al repositorio custom.
Este tutorial mostró varias opciones diferentes para enviar una rama local a un repositorio remoto. Enviar cambios en un repositorio remoto es útil al colaborar en un proyecto. Por esa razón, git push es uno de los comandos esenciales de Git.