-
Ramas del proyecto en GitHub:
main
omaster
: Contiene el código estable que está listo para producción. Solo se fusionan cambios que han sido probados y revisados.develop
odevelopment
: Rama para desarrollo activo. Aquí se integran los cambios de los desarrolladores antes de fusionarse conmain
.
-
Tu trabajo como desarrollador:
- Haces un fork del repositorio principal en GitHub. Esto crea una copia del proyecto en tu cuenta, en la que tienes control total.
- Clonas tu fork en tu máquina local:
git clone <URL-de-tu-fork>
- Configuras el repositorio remoto del proyecto principal como
upstream
para mantener tu fork actualizado:git remote add upstream <URL-del-repositorio-principal>
-
Crear una rama de trabajo:
- Basándote en
develop
(o la rama que indique la política del proyecto), creas una nueva rama para los cambios que harás:git checkout -b feature/nombre-de-tu-cambio develop
- Basándote en
-
Desarrollar y realizar commits:
- Realizas tus cambios localmente y haces commits con descripciones claras:
git add . git commit -m "Descripción clara de los cambios"
- Realizas tus cambios localmente y haces commits con descripciones claras:
-
Sincronizar con
develop
:- Antes de enviar tus cambios, asegúrate de que tu rama esté sincronizada con los últimos cambios en
develop
:(Ogit fetch upstream git merge upstream/develop
git rebase
si el equipo prefiere evitar commits de merge.)
- Antes de enviar tus cambios, asegúrate de que tu rama esté sincronizada con los últimos cambios en
-
Subir cambios a tu fork:
- Envías tus cambios a tu fork en GitHub:
git push origin feature/nombre-de-tu-cambio
- Envías tus cambios a tu fork en GitHub:
-
Crear un Pull Request (PR):
- En GitHub, creas un Pull Request desde tu rama (
feature/nombre-de-tu-cambio
) en tu fork hacia la ramadevelop
del repositorio principal. - Proporcionas una descripción detallada del PR, explicando qué problema resuelve o qué funcionalidad añade, cómo probarlo, y cualquier otro contexto relevante.
- En GitHub, creas un Pull Request desde tu rama (
-
Revisión del PR:
- Un encargado (como un líder técnico o revisor) revisa tu PR. Puede solicitar cambios, añadir comentarios o sugerir mejoras.
- Respondes a los comentarios, haces los cambios necesarios, y actualizas tu PR subiendo nuevos commits o haciendo un
git rebase
ygit push --force
.
-
Fusión del PR:
- Una vez aprobado, el encargado fusiona tu PR con la rama
develop
. Dependiendo de la política del equipo, podría hacerse un merge commit, un squash merge o un rebase.
- Una vez aprobado, el encargado fusiona tu PR con la rama
- Aislamiento de cambios: Tus cambios están en una rama separada hasta que se aprueben.
- Revisión de calidad: Los PR permiten que otros revisen el código antes de que se integre.
- Colaboración fluida: Facilita el trabajo en equipo y la resolución de conflictos.
- Historial claro: Las ramas y PRs documentan qué se ha cambiado y por qué.
- Pruebas automatizadas: Es habitual que un PR dispare un pipeline de CI/CD para ejecutar pruebas automáticas antes de que se fusione.
- Protección de ramas: Las ramas principales (
main
,develop
) suelen estar protegidas para evitar fusiones sin revisión o sin pasar pruebas automáticas. - Políticas de código limpio: Es común que haya guías sobre estilos de código, estándares, y convenciones que debas seguir.
Este flujo (con pequeñas variaciones) se utiliza en metodologías como Git Flow, GitHub Flow, o Trunk-Based Development, dependiendo de la preferencia del equipo.