Git es una herramienta esencial para el control de versiones, y administrar correctamente las ramas es clave para mantener un flujo de trabajo ordenado. A veces, después de crear una rama, nos damos cuenta de que su nombre no es el más adecuado o simplemente queremos seguir una convención de nombres más clara.
Seguid leyendo y os enseñaré a renombrar una rama de Git tanto a nivel local como en el servidor de origen...
¿QUÉ ES UNA RAMA DE GIT?
Git es un sistema de control de versiones distribuido que permite a los desarrolladores rastrear cambios en el código, colaborar en proyectos y mantener un historial detallado de modificaciones.
Características principales de Git:
- Distribuido: Cada desarrollador tiene una copia completa del repositorio, no depende de un servidor central.
- Historial de cambios: Permite ver qué cambios se hicieron, quién los hizo y cuándo.
- Ramas (Branches): Facilita el trabajo en paralelo creando versiones separadas del proyecto.
- Fusión (Merge): Une los cambios de diferentes ramas de manera eficiente.
- Velocidad y eficiencia: Está optimizado para manejar proyectos de cualquier tamaño rápidamente.
Conceptos básicos:
- Repositorio (Repository): Es el lugar donde se almacenan los archivos y su historial de cambios.
- Commit: Un punto en el historial que guarda cambios específicos con un mensaje descriptivo.
- Branch (Rama): Una línea de desarrollo separada del código principal.
- Merge: Integrar cambios de una rama a otra.
- Pull y Push: Descargar y subir cambios de un repositorio remoto.
- Clone: Copiar un repositorio remoto en tu máquina local.
Web Oficial: https://git-scm.com/
Git es clave en el desarrollo de software.
1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL
- Un equipo cualquiera con Windows, GNU/Linux o MacOS
- GIT instalado
- Un servidor de Git, por ejemplo, GitHub
- Internet es recomendado
2.- ESCENARIO INICIAL
En nuestro escenario inicial, tenemos la rama principal llamada "main" y luego otra rama llamada "develop-frontend". Lo que queremos hacer es renombrar local y remotamente la rama "develop-frontend" para pasar a ser llamada "develop-backend". Se añadió la rama con un nombre equivocado y ahora queremos cambiarla.
Estado inicial de las ramas
Ramas del repositorio
3.- RENOMBRAR LA RAMA LOCAL
Para renombrar una rama de git, tanto en local como en remoto, primero procederemos a realizar el cambio de nombre a nivel local en nuestra copia del repositorio. Para ello, ejecutaremos git branch para ver en que rama estamos:
Rama actual
Con el comando anterior, podemos ver que estamos en la rama main. La rama que nos interesa es develop-frontend, por tanto, ejecutaremos un checkout a dicha rama:
raul@debian:~/myapp$ git checkout develop-frontend
Cambiado a rama 'develop-frontend'
Tu rama está actualizada con 'origin/develop-frontend'.
raul@debian:~/myapp$ git branch
* develop-frontend
main
raul@debian:~/myapp$
La salida del comando anterior se puede ver en la siguiente imagen:
Checkout a develop-frontend
Ahora, será cuando ejecutemos el comando para renombrar, a nivel local, nuestra rama pasando de develop-frontend a -> develop-backend:
raul@debian:~/myapp$ git branch -m develop-backend
raul@debian:~/myapp$ git branch
* develop-backend
main
La salida del comando anterior, renombrando la rama a nivel local, se puede ver en la siguiente imagen:
Renombrando rama local
4.- SUBIR LA RAMA LOCAL
El siguiente paso será subir la rama local, con el nuevo nombre, al servidor origen. En este caso, el servidor origen está en GitHub en un repositorio de pruebas. Para ello, ejecutaremos el comando siguiente para enviar la nueva rama:
raul@debian:~/myapp$ git push origin develop-backend
Username for 'https://github.com': raulprietofdez
Password for 'https://Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.':
Total 0 (delta 0), reusados 0 (delta 0), pack-reusados 0
remote:
remote: Create a pull request for 'develop-backend' on GitHub by visiting:
remote: https://github.com/raulprietofdez/myapp/pull/new/develop-backend
remote:
To https://github.com/raulprietofdez/myapp.git
* [new branch] develop-backend -> develop-backend
La salida del comando anterior, enviando la nueva rama local a GitHub, se puede ver en la siguiente imagen:
Enviando nueva rama a GitHub
5.- ELIMINAR LA VIEJA RAMA REMOTA
Una vez enviada la nueva rama develop-backend, tendremos la nueva rama en el servidor de GitHub:
Nueva rama en GitHub
Para eliminar la rama remota, ejecutaremos el comando siguiente:
raul@debian:~/myapp$ git push origin --delete develop-frontend
Username for 'https://github.com': raulprietofdez
Password for 'https://Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.':
To https://github.com/raulprietofdez/myapp.git
- [deleted] develop-frontend
La salida del comando anterior, borrando la vieja rama remota de GitHub, se puede ver en la siguiente imagen:
Rama remota borrada
Si miramos ahora las ramas en GitHub, veremos que la vieja rama develop-frontend ya no existe y se ha subido la nueva rama develop-backend:
Ramas en GitHub
6.- ASEGURAR LA SINCRONIZACIÓN DE LA RAMA LOCAL Y REMOTA
Para asegurarnos de que develop-backend se sincroniza correctamente con su versión en el servidor, debemos ejecutar el siguiente comando:
raul@debian:~/myapp$ git push --set-upstream origin develop-backend
Username for 'https://github.com': raulprietofdez
Password for 'https://Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.':
rama 'develop-backend' configurada para rastrear 'origin/develop-backend'.
Everything up-to-date
Este comando vincula la rama develop-backend local con develop-backend en el remoto de GitHub, de modo que futuros git push o git pull se nos hagan sin necesidad de especificar la rama. La salida del comando podéis verlo en la siguiente imagen:
Vincular rama local y remota
¡Ahora ya podéis seguir trabajando normalmente con la nueva rama develop-backend!
ENJOY!