Definimos los siguientes branches en el repositorio.
- master: Este branch se crea por defecto. Sobre este no se trabajara.
- release: Es el branch donde se pondran los realease formados por todos los cambios de los desarrolladores.
- develop:Son las versiones estables de desarrollo. O sea las que se hacen despues de hacer el merge.
Crear el repositorio usando Git
La idea es hacer checkouts del branch develop, trabajar sobre este y cuando estemos preparados para hacer push al servidor procedemos a hacer pull de las ultimas versiones de develop y hacer un merge de nuestro feature con la ultima version de develop a la que le hicimos pull.
El primer paso seria crear un branch en el repositorio remoto de la siguiente forma:
git branch develop git push -u origin develop
Lo que hicimos fue crear un branch localmente y luego hacerle push a nuestro repositorio.
Recetario para trabajar con GitFlow
El proceso que debe llevar a cabo todo desarrollador que trabaje con GitFlow, lo resumo en los siguientes pasos.
- Clonar proyecto en el ambiente local: El usuario debe clonar todo el repositorio remoto en su maquina y definirle a git que va a trabajar sobre develop, para esto usa el comando checkout
- Crear el branch que contendra nuestro feature: Lo que hacemos es clonar el contenido del branch develop(El que descargamos del repo remoto) en otro branch llamado "feature1.0".
- Realizar cambios y añadir al Staging Area de Git los archivos editados: Cada vez que creemos o modifiquemos algun archivo en nuestro git, debemos añadirlo al staging area para que git sepa que archivos son los que deben ser versionados.
- Hacemos commit de el staging area: Luego de añadir los archivos al staging area, hacemos commit de forma local de estos archivos.
- Realizamos el pull de los ultimos cambios en develop(IMPORTANTE): Por ultimo debemos hacer pull(O sea recuperar los cambios que se hacen sobre el repositorio) del branch remoto de develop. Esto lo hacemos con el fin de obtener los ultimos cambios subidos por otros desarrolladores.
- Nos posicionamos en develop: Hacemos checkout del branch develop, para trabajar sobre este branch.
- Hacemos el merge del feature y del branch develop: Lo que hacemos es hacer un merge del contenido del branch develop con el contenido del branch feature.
- Resolvemos conflictos: Si durante el merge existiese algun conflicto, este seria el momento de solucionarlos. En otro tutorial ahondaremos en el tema.
- Hacemos push al repositorio remoto: Si todo salio bien debemos hacer push del merge que acabamos de hacer.
- Borramos branch feature localmente: Como el branch donde conteniamos el feature es algo transitorio procedemos a borrarlo localmente.
git clone /ruta/repo.git git checkout -b develop origin/develop
git checkout -b feature1.0 develop
git add "file"
NOTA: Esto lo hacemos para cada archivo. git commit -m "Comentario del commit"
git pull origin develop
git checkout develop
git merge feature1.0
git push
git branch -d feature1.0