Trabajo en equipo con Git
Ver los cambios, guardarlos localmente, actualizarlos al remoto y trabajar en equipo con los repositorios de GitHub desde la terminal, con git.
Resúmenes
- Metodología
- Ver los cambios
- Guardar los cambios
- Actualizar (local>remoto)
- Actualizar (remoto>local)
- Ramas en GitHub
- PR
Para los siguientes pasos necesitas estos programas:
- Git : Descargar
- VSCode : Descargar
- Cuenta de GitHub : Registrarse
Crear el repositorio
Para crear el repositorio a nivel local, es decir, en tu máquina, necesitas seguir uno de los siguientes pasos:
- Descargarlo : En el repositorio de github
- Le das al botón verde
code
- Le das a
Download zip
- Le das al botón verde
- Descargarlo desde terminal : En la terminal de git o linux, ejecuta los siguientes comandos
git clone https://github.com/cuenta/repositorio.git
cd repositorio
Una vez tenemos el repositorio creado y nos ubicamos en el y lo abrimos con VSCode.
En visual estudio code, y con la carpeta del repositorio abierta, vamos a la barra de arriba y selecionamos Terminal
> Nuevo Terminal
.
Se nos abrirá una nueva terminal, ahí ejecutaremos todos los comandos.
Ver cambios
Para ver los cambios realizados en un repositorio de Git, puedes utilizar el comando git status
. Este comando te mostrará una lista de todos los archivos que han sido modificados desde la última vez que se realizó un commit.Veremos más adelante que es un commit.
Si quieres ver los cambios realizados en un archivo en particular, puedes utilizar el comando git diff
seguido del nombre del archivo. Esto te mostrará una comparación de la versión actual del archivo con la versión más reciente del archivo en el repositorio, lo que te permitirá ver exactamente qué cambios se han realizado.
Estos comandos te ayudarán a mantener un control preciso sobre los cambios realizados en tu código y a detectar cualquier problema que pueda haber en tu repositorio.
Resúmen de ver cambios
Para ver los cambios realizados en el repositorio local:
git status
Para ver los cambios realizados en un archivo en particular:
git diff archivo
Guardar cambios
Para cambiar cosas y que se queden guardadas localmente seguiremos estos sencillos pasos :
- Hacer los cambios que creamos necesarios
- Lanzamos el comando
git add .
- Lanzamos el comando
git commit -m
: justo al lado del -m, debería ir una corta descripción del commit y los cambios realizados
Antes de continuar, que indican estos dos nuevos comandos:
git add .
El comando git add .
se utiliza para agregar todos los archivos modificados o nuevos en el directorio actual y sus subdirectorios a la zona de preparación (staging area) de Git. Esto significa que después de ejecutar git add .
, todos los cambios que hayas realizado en los archivos del proyecto se encontrarán en un estado preparado para ser confirmados en el repositorio de Git mediante un commit.
Por ejemplo, supongamos que has modificado varios archivos en tu proyecto y quieres confirmar los cambios en el repositorio de Git localmente. Primero, debes asegurarte de que todos los archivos modificados estén en la zona de preparación mediante git add .
para que se tengan en cuenta a la hora del commit. Luego, puedes confirmar los cambios en el repositorio mediante el comando git commit -m "mensaje del commit"
. De esta manera, Git sabrá qué cambios confirmar en el repositorio y podrás seguir trabajando en el proyecto.
git commit -m
El comando git commit -m
se utiliza para confirmar (commit) los cambios que hayas realizado en el proyecto en el repositorio de Git a nivel local. Esto significa que después de ejecutar git commit -m "mensaje del commit"
, todos los cambios que hayas realizado en los archivos de tu proyecto y que estén en la zona de preparación (staging area) se guardarán en el repositorio de Git.
El mensaje del commit que especificas después del parámetro -m
(message) es una breve descripción de los cambios que has confirmado en el repositorio. Es importante elegir un mensaje de commit claro y descriptivo, ya que te ayudará a recordar qué cambios se hicieron en el commit y puede ser útil para otros desarrolladores que trabajen en el mismo proyecto.
Resúmen de guardar cambios
Una vez hayamos hecho todos los cambios que creamos necesarios, lanzamos los dos siguientes comandos:
git add .
git commit -m "Mensaje del commit"
Esto nos guardará los cambios localmente.
Actualizar remotamente
Una vez tienes el commit hecho y los cambios a nivel local guardados, es hora de subirlo a GitHub y actualizar el repositorio para todos.
Para esto, debes usar el siguiente comando :
git push origin main
Otra forma más corta es :
git push
Este comando, lo que hará será enviar los cambios a la rama main del repositorio remoto (en Github). Hablemos más acerca de este comando
git push
El comando git push
se utiliza para pushear o enviar (push) los cambios confirmados en tu repositorio local a un repositorio remoto en GitHub o un servidor. Esto significa que después de ejecutar git push
, todos los cambios que hayas confirmado con uno o varios commit en tu repositorio a nivel local se reflejarán en el repositorio remoto. De esta manera, todos los desarrolladores que tengan acceso al repositorio remoto podrán ver y obtener los cambios que has realizado en el proyecto.
Es importante tener en cuenta que si hay cambios en el repositorio remoto que no estén en tu repositorio local, git push
los ignorará y solo enviará los cambios que hayas confirmado localmente, aunque se recomienda evitar esto ya que puede llegar a causar conflictos.
Resúmen para actualizar remotamente
Una vez hechos los commits, actualiza el repositorio remoto con este comando:
git push
Actualizar localmente
Puede que en el repositorio remoto se hayan producido cambios mientras tu no estabas, y quieres asegurarte de que tienes el repositorio actualizado localmente. Para ello, es tán fácil como lanzar el siguiente comando:
git pull
Esto buscará en el repositorio remoto si hay algún cambio respecto al local: si lo hay, lo añadiría, en caso contrario te pondrá un mensaje indicando que está todo actualizado.
git pull
El comando git pull
se utiliza para descargar y combinar cambios de un repositorio remoto con el repositorio local. Esto implica:
- descargar los últimos cambios del repositorio remoto
- fusionarlos con los cambios locales
- si hay conflictos, resolverlos
El comando git pull
es una combinación de dos comandos: git fetch
, que descarga los cambios del repositorio remoto y git merge
, que mergea o combina los cambios descargados con los cambios locales.
Resúmen para actualizar localmente
Para actualizar y sincronizar tu repositorio local con el repositorio remoto, usa este comando:
git pull
Trabajar en equipo
Una de las mejores formas de trabajar en equipo en GitHub es usando un Sistema de ramificación y fusionado de cambios. De esta forma se asegura que los cambios se integren de manera ordenada y se eviten conflictos.
Sistema de ramificación y fusionado de cambios
Un sistema de ramificación y fusionado de cambios es una técnica utilizada en el control de versiones que permite a varios desarrolladores trabajar en un proyecto de manera simultánea sin interferir entre sí.
En este sistema, cada desarrollador trabaja en su propia rama del proyecto, que es una copia separada del código principal. Una vez que un desarrollador ha terminado sus cambios, pueden fusionarse con la rama principal del proyecto mediante un proceso de revisión y aprobación (merge).
En GitHub, la ramificación y el fusionado de cambios se pueden realizar mediante la interfaz de usuario o utilizando los comandos de Git. Esto permite a los equipos trabajar de manera eficiente en proyectos grandes y complejos, manteniendo un control preciso sobre los cambios que se realizan en el código.
¿Como se lleva esto a cabo?
Para llevar a cabo un sistema de ramificación y fusionado de cambios en GitHub, se deben seguir estos pasos una vez clonado el repositorio localmente :
Crea una nueva rama en tu repositorio local utilizando el comando
git branch
seguido del nombre de la rama. Por ejemplo,git branch nueva-funcionalidad
ogit branch federico
.Cambia a la rama creada utilizando el comando
git checkout
seguido del nombre de la rama. Por ejemplo,git checkout nueva-funcionalidad
.Realiza tus cambios en la rama y utiliza los comandos antes vistos para guardar tus cambios en tu repositorio local:
git add .
git commit -m "Mensaje"
Publica tu rama en el repositorio remoto en GitHub utilizando el comando
git push
, pero esta vez seguido del nombre de la rama. Por ejemplo,git push origin nueva-funcionalidad
ogit push origin federico
.Crea una solicitud de extracción o pr (pull request) en GitHub para fusionar tus cambios con la rama principal del proyecto.
Revisa y aprueba la pull request para fusionar tus cambios con la rama principal del proyecto.
Elimina la rama una vez que se haya fusionado con éxito con la rama principal.
Actualiza tu repositorio local con los cambios de la rama principal, primero cambiandote a dicha rama con
git checkout main
y luego utilizando el comandogit pull
.
Al ser tantos conceptos, vamos a hablar de algunos de ellos más en profundidad
Ramas
En GitHub, las ramas (branch) son copias separadas del código principal de un proyecto que se utilizan para desarrollar nuevas funcionalidades o corregir errores sin afectar al código principal. Cada rama se puede tratar como una versión independiente del proyecto, lo que permite a varios desarrolladores trabajar en el mismo proyecto de manera simultánea sin interferir entre sí.
Crear ramas
Para crear una rama en GitHub desde la terminal, primero debes asegurarte de estar en la rama principal (generalmente es la rama "main"). Una vez allí, puedes usar el comando git branch
seguido del nombre de la nueva rama para crearla :
git branch nombre-rama
Este comando creará una nueva rama en tu repositorio local, pero aún no estará disponible en tu repositorio remoto de GitHub. Para publicar la rama en el repositorio remoto, debes usar el comando git push
junto con la opción -u (upstream) y el nombre del repositorio remoto (origin) y el nombre de la rama :
git push -u origin nombre-rama
Este comando publicará la rama en tu repositorio remoto y a partir de ahí, puedes usar el comando git push
sin ninguna opción adicional para actualizar la rama remota cada vez que realices cambios en tu rama local.
Cambiar de ramas
Para cambiar de una rama a otra en tu repositorio local, puedes usar el comando git checkout
seguido del nombre de la rama a la que deseas cambiar. Por ejemplo, si deseas cambiar a la rama "nombre-rama", puedes usar el siguiente comando:
git checkout nombre-rama
Este comando cambiará a la rama especificada y actualizará tu directorio de trabajo para reflejar los cambios en la rama. También puedes usar el comando git branch
para ver una lista de todas las ramas disponibles en tu repositorio y confirmar en qué rama te encuentras actualmente.
También, con git checkout
, existe la posibilidad de crear una rama. Esto se da con el parámetro -b, y lo que hace es crear la rama y cambiar a ella directamente :
git checkout -b nombre-rama
Eliminar ramas
Para eliminar una rama en GitHub, primero necesitas asegurarte de que estás en la rama que deseas eliminar. Si no estás en la rama que deseas eliminar, debes cambiarte a ella como hemos visto antes aquí
Una vez que estés en la rama que deseas eliminar, puedes eliminarla con este comando:
git branch -d nombre-rama
Este comando eliminará la rama de forma local.Para que este cambio también tenga lugar en el repositorio remoto, hay que enviar los cambios con este comando:
git push origin --delete nombre-rama
Resúmen de ramas
Para crear una rama, lo puedes hacer con el siguiente comando:
git checkout -b nombre-rama
Si quisieras cambiar de rama, usa este otro :
git checkout nombre-rama
Una vez hayas hechos los cambios a nivel local, para reflejar tanto los cambios como la nueva rama al repositorio remoto, usa el siguiente comando:
git push -u origin nombre-rama
También puedes eliminarla a nieval local :
git branch -d nombre-rama
o eliminarla también en el repositorio en GitHub:
git push origin --delete nombre-rama
Pull Request
Una pr o pull request (también conocida como "solicitud de extracción" en español) es una característica de GitHub que permite a los colaboradores de un repositorio sugerir cambios a los archivos en ese repositorio.
Una vez que se envía una pull request, los administradores del repositorio pueden revisar los cambios propuestos, discutirlos con otros colaboradores y, si lo desean, fusionar los cambios (merge) en la rama principal del repositorio.
Las solicitudes de extracción son útiles para colaborar en proyectos de código, ya que permiten a los colaboradores proponer cambios en un entorno aislado (es decir, en una rama separada) antes de fusionarlos en la rama principal. Esto permite a los administradores del repositorio revisar y discutir los cambios propuestos en detalle antes de fusionarlos en el código principal.
Para enviar una solicitud de extracción en GitHub, primero debes crear una rama en tu repositorio local que contenga los cambios que deseas proponer. Una vez que hayas confirmado que los cambios se comportan como se espera, debes publicar la rama en tu repositorio remoto GitHub y luego enviar una pull request desde la página de tu repositorio remoto. Los administradores del repositorio recibirán una notificación sobre tu pull request y podrán revisar los cambios propuestos y fusionarlos en la rama principal si lo ven conveniente.
Hacer una pull request
Para hacer una pull request , clonado el repositorio y crear una rama (branch) en la que realizarás tus cambios. Una vez estás en tu rama, puedes empezar a realizar tus cambios necesarios. Cuando hayas finalizado, debes comitear los archivos agregados.Aquí está como comitear los archivos
Cuando hayas hecho el commit, puedes enviar tus cambios a tu rama en el repositorio remoto con el comando git push -u origin nombre-rama
.
Una vez hechos esos pasos previos, debes ir a la página del repositorio en GitHub y hacer clic en el botón "New pull request" si no te sale por defecto. Esto te llevará a una página donde podrás comparar tus cambios con la rama principal (main) y crear la pull request. Una vez que hayas creado la pull request, otros colaboradores en el repositorio podrán ver tus cambios y comentar en ellos o fusionarlos con la rama principal.
Merge
En el contexto de GitHub, un merge es el proceso de combinar cambios de una rama (branch) de un repositorio en otra rama del mismo repositorio. Por ejemplo, si un desarrollador hace cambios en una rama llamada "feature-x", pueden fusionarse (merge) esos cambios en la rama principal del repositorio ("main"), de modo que los cambios estén disponibles en la versión principal del proyecto. Realizar un merge en GitHub es una forma de integrar las contribuciones de varios desarrolladores en un solo repositorio.