- Crear un repositorio en Github para el proyecto (solo uno por equipo).
- En el ordenador, crear la carpeta del proyecto, e incluir un archivo
.gitignore
para NodeJS (ejemplo aquí). - Inicializar el proyecto en local con git (
git init
) - Vincularlo con el repo Github (
git remote add origin <url-del-repo-github>
) - Crear una rama
develop
(el proyecto tendrá 2 ramas principales:main
ydevelop
) - Hacer el primer commit para subir estas 2 ramas al Github (de momento solo viven en local)
- Añadir a tu compañero como colaborador del repositorio GitHub
- El compañero que no es el "owner" del repositorio tendrá que hacer clone del repo en su ordenador.
- Ambas personas tendrán que crear el archivo .env file en su local
- Cada compañero crea su propia rama desde
develop
, correspondiente a la funcionalidad en la que está trabajando en ese momento (por ejemplo para crear una rama "add-dependencies":git checkout -b add-dependencies
)
Una vez pusheados los commits de esta rama local a la misma rama en remote, hacemos una pull request contra "develop" para que el compañero revise y apruebe sus commits - La rama
develop
(rama de "staging") será la rama desde donde harán el deploy.
Una vez esté hecho el deploy y funciona en producción (heroku), fusionar la rama develop dentro de master - La rama
main
es la rama principal donde vive el proyecto. Se fusionadevelop
dentro demain
una vez todo funciona, congit merge develop
desde la ramamain
# Crear una nueva rama y colocarse en esa rama
git checkout -b <nombre-de-la-rama>
# Añadir y commitear los cambios de nuestra rama local a la misma rama en remote (= github)
git add .
git commit -m "mensaje de commit"
git push origin <nombre-de-la-rama>
# Hacer un pull request desde Github, contra develop
# El compañero mergea los cambios (después de haberlos revisados y aprobados) a develop desde Github
# Cambiarse a una rama existente
git checkout <nombre-de-la-rama>
# Mostrar todas las ramas existentes (y ver en qué rama estamos)
git branch
# Eliminar una rama (desde otra rama)
git branch -D <nombre-de-la-rama-a-eliminar>
# Fusionar código desde otra rama dentro de la rama en la que estamos (aunque recomendamos que estos merges se hagan con Pull Requests desde Github)
git merge <nombre-de-la-rama-que-queremos-fusionar-dentro-de-la-rama-en-la-que-estamos>
# Traernos los cambios que nuestro compañero ha subido a Github, a nuestro local
git pull origin <rama-en-la-que-estan-los-cambios>
-
Consejos para evitar conflictos en git :
- Trabajar en ramas distintas, y comunicar a menudo con tu compañero.
- La configuración inicial del back-end debería (preferiblemente) hacerse conjuntamente, en pair programming.
- Hacer checkpoints a menudo con tu compañero, repartirse tareas y comunicar sobre los archivos en los que estaréis trabajando cada uno.
- Hacer pull requests en vez de mergear directamente tus cambios en
develop
- Hacer pequeños commits, y escribir mensajes descriptivos:
- Max. 50 carácteres
- Usar tono imperativo, por ej. :
- "Add session middleware to
app.js
" - "Add
UserModel.js
" - "Bugfix route
'/login'
inroutes/auth.js
"
- "Add session middleware to