1. Configuración Inicial del Proyecto
Crear o Clonar el Repositorio
- Si el repositorio no existe:
git init
git remote add origin https://github.com/user/repo.git
git branch -M main git push -u origin main
- Si ya existe, clónalo:
git clone https://github.com/user/repo.git
Configurar Accesos y Roles
- En GitHub, ve a Settings > Collaborators para invitar a los colaboradores y asignarles permisos (Lectura, Escritura, Administrador, etc.).
2. Flujo de Trabajo Básico para Colaboración
Crear una Nueva Rama para tu Trabajo
Los colaboradores no trabajan directamente en la rama principal (main
o master
) para evitar conflictos.
git checkout -b feature/nueva-funcionalidad
Ejemplo:
- María está agregando una nueva funcionalidad. Crea una rama llamada
feature/agregar-botón
.
Realizar Cambios y Confirmar
- Edita archivos en tu rama.
- Usa
git add
para agregar los cambios. - Confirma los cambios con un mensaje descriptivo:
git add archivo.txt
git commit -m "Agregar botón en la página de inicio"
Subir Cambios al Repositorio Remoto
Para compartir tu trabajo:
git push origin feature/nueva-funcionalidad
Ejemplo:
- María sube su trabajo en la rama
feature/agregar-botón
:git push origin feature/agregar-botón
3. Revisar y Fusionar Cambios
Crear un Pull Request (PR)
- Ve al repositorio en GitHub.
- Selecciona tu rama y haz clic en Compare & Pull Request.
- Escribe una descripción detallada de los cambios.
- Asigna revisores (por ejemplo, tu líder de proyecto).
Revisión por Parte del Equipo
- Los revisores comentan o aprueban el PR.
- Si es necesario, realiza ajustes en tu rama y sube los cambios nuevamente:
git add .
git commit -m "Ajustar color del botón"
git push origin feature/agregar-botón
Fusionar el Pull Request
Una vez aprobado:
- Haz clic en Merge Pull Request en GitHub.
- Borra la rama para mantener el repositorio limpio.
4. Sincronización y Resolución de Conflictos
Actualizar tu Rama Local
Antes de trabajar, asegúrate de tener los últimos cambios del remoto:
git pull origin main
Si estás en una rama:
git checkout feature/nueva-funcionalidad
git merge main
Resolver Conflictos
Si hay conflictos al fusionar:
- Git indicará los archivos en conflicto.
- Abre los archivos, resuelve los conflictos (busca las marcas
<<<<<<
,======
,>>>>>>
). - Una vez resueltos:
git add archivo_conflicto.txt
git commit -m "Resolver conflicto en archivo_conflicto.txt"
5. Flujo Avanzado: Estrategia Fork
Para proyectos con múltiples colaboradores externos:
- Cada colaborador hace un fork del repositorio.
- Realiza cambios en su fork y crea un Pull Request hacia el repositorio original.
Ejemplo:
- Pedro quiere contribuir a un repositorio público. Hace un fork, crea la rama
fix/corregir-typo
, realiza los cambios y envía un PR.
6. Buenas Prácticas
- Escribe commits descriptivos:
git commit -m "Corregir bug en validación de formulario"
. - Divide el trabajo: Usa ramas para cada funcionalidad o corrección.
- Sincroniza frecuentemente: Usa
git pull
ogit fetch
para evitar conflictos mayores. - Revisa el código: Usa herramientas como GitHub Actions o revisores manuales.