DEV Community

Cover image for Flujo de trabajo Git eficaz: gestión del control de versiones en entornos de equipo
hijuliancode
hijuliancode

Posted on • Updated on

Flujo de trabajo Git eficaz: gestión del control de versiones en entornos de equipo

Git: Un Sistema de Control de Versiones

Git es un sistema de control de versiones utilizado para gestionar cambios en archivos, generalmente en proyectos de código o diseño.

¿Qué es el Control de Versiones?

Se refiere a la administración de cambios realizados a archivos a lo largo del tiempo. Nos permite:

  • Rastrear modificaciones,
  • Revertir a versiones anteriores,
  • Colaborar de manera efectiva.

¿Por qué usamos Git?

Git nos ayuda a:

  • Preservar cambios,
  • Rastrear modificaciones en uno o más archivos,
  • Guardar el progreso en proyectos, ya sean de código o diseño.

Aunque Git también se puede usar para notas personales o tareas académicas, su uso principal es para colaboración en equipo. En términos simples, Git es "una herramienta que me ayuda a organizarme con mi equipo y a seguir el trabajo que hacemos".

Recuerda que Git opera dentro de un directorio. Si quieres rastrear un solo archivo, Git debe estar inicializado en el directorio que contiene ese archivo.


Comandos Útiles para Colaboración en Equipo

# Inicializar un repositorio Git en un directorio
git init

# Actualizar todas las ramas remotas
git fetch --all

# Listar ramas locales
git branch

# Listar ramas locales y remotas
git branch -a

# Agregar un repositorio remoto
git remote add origin https://gitlab.com/hijuliancode/demo-git-tutorial

# Agregar un repositorio remoto de Heroku
git remote add heroku https://git.heroku.com/demo-heroku-repo.git

# Eliminar un repositorio remoto
git remote remove heroku

# Ver todos los repositorios remotos configurados
git remote -v

# Traer y fusionar cambios del repositorio remoto en la rama master
git pull origin master

# Subir cambios desde la rama master local al repositorio remoto
git push origin master

# Mostrar el estado del directorio de trabajo y el área de staging
git status

# Agregar un archivo al área de staging
git add filename.html

# Agregar todos los cambios del directorio actual al área de staging
git add .

# Quitar un archivo del área de staging
git reset filename.html

# Quitar todos los archivos del área de staging
git reset .

# Renombrar un archivo
git mv oldname.js newname.js

# Renombrar un archivo dentro de un directorio
git mv folder/oldname.js folder/newname.js

# Guardar temporalmente los cambios y volver al último commit
git stash

# Restaurar los cambios guardados en el stash
git stash apply

# Crear un commit con un mensaje descriptivo
git commit -m "Mensaje"
Enter fullscreen mode Exit fullscreen mode

Ejemplo de Workflow

Imagina que estamos construyendo una casa como proyecto. Aquí te dejo el flujo de trabajo que usarían tres personas: Persona A, Persona B y Persona C.

  1. Persona A inicializa el repositorio:

    git init
    git remote add origin git@gitlab.com:hijuliancode/demo-git-tutorial.git
    
  2. Persona A crea un archivo inicial y lo empuja al repositorio:

    echo "## demo-git-tutorial" >> README.md
    git add README.md
    git commit -m "initial commit"
    git branch -M master
    git push origin master
    
  3. Persona B y Persona C clonan el repositorio:

    git clone git@gitlab.com:hijuliancode/demo-git-tutorial.git
    cd demo-git-tutorial
    
  4. Persona A crea la rama develop y la sube al repositorio remoto:

    git checkout -b develop
    git push origin develop
    
  5. Persona B y Persona C actualizan sus repositorios locales para incluir la rama develop:

    git fetch --all
    git checkout develop
    

Ahora, todos tienen el repositorio y pueden empezar a contribuir.

  1. Persona A crea una rama de característica (feature) para trabajar en los planos de la casa:

    git checkout -b feature/house-plans
    touch house-plans.js
    git add house-plans.js
    git commit -m "Add house plans"
    git push origin feature/house-plans
    
  2. Persona B y Persona C actualizan sus repositorios locales para obtener la nueva rama:

    git fetch --all
    git branch -a
    git checkout feature/house-plans
    
  3. Persona B sugiere mejoras a los planos. Para eso crea un Pull Request (o Merge Request):

    • Ve al repositorio en GitHub o GitLab,
    • Navega a la sección de Pull Requests o Merge Requests,
    • Asigna un revisor (como un líder de equipo o un compañero).

Para aplicar las sugerencias:

   git add house-plans.js
   git commit -m "Improve house plans"
   git push origin feature/house-plans
Enter fullscreen mode Exit fullscreen mode
  1. Una vez que se aprueba y fusiona la rama, puede eliminarse:

    git checkout develop
    git pull origin develop
    git branch -D feature/house-plans
    

¡Y listo! Repite este proceso para nuevas características o cambios.

Top comments (0)