Skip to content

Instantly share code, notes, and snippets.

@caprosset
Last active December 19, 2020 09:33
Show Gist options
  • Save caprosset/a451f27e590773e32bddeeee47823b31 to your computer and use it in GitHub Desktop.
Save caprosset/a451f27e590773e32bddeeee47823b31 to your computer and use it in GitHub Desktop.
Proyecto M2 - Primeros pasos & Git flow

M2 Project - Git Flow

Configuración inicial:

  • 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 y develop)
  • 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

Ramas:

  • 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 fusiona develop dentro de main una vez todo funciona, con git merge develop desde la rama main

Trabajar con ramas:

# 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' in routes/auth.js "

Links adicionales

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment