Saltar al contenido principal

Trabajo en equipo con Git

Aprenderás a:

Ver los cambios, guardarlos localmente, actualizarlos al remoto y trabajar en equipo con los repositorios de GitHub desde la terminal, con git.

Resúmenes

Antes de nada

Para los siguientes pasos necesitas estos programas:

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
  • 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 :

  1. 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 o git branch federico.

  2. Cambia a la rama creada utilizando el comando git checkout seguido del nombre de la rama. Por ejemplo, git checkout nueva-funcionalidad.

  3. 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"
  4. 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 o git push origin federico.

  5. Crea una solicitud de extracción o pr (pull request) en GitHub para fusionar tus cambios con la rama principal del proyecto.

  6. Revisa y aprueba la pull request para fusionar tus cambios con la rama principal del proyecto.

  7. Elimina la rama una vez que se haya fusionado con éxito con la rama principal.

  8. Actualiza tu repositorio local con los cambios de la rama principal, primero cambiandote a dicha rama con git checkout main y luego utilizando el comando git 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.