1. git checkout MVVM_Ivan (o bernat)
2. git merge MVVM
3. git push origin MVVM_Ivan (o Bernat)
En otro caso, la rama local MVVM_Ivan o MVVM_Bernat siempre debe estar sincronizada, supongamos que debería estar:
1 .git checkout MVVM_Bernat (o MVVM_Ivan según developer)
2. git diff MVVM_Bernat MVVM (no debe salir nada si está sincronizado)
Supongamos ahora que no está la rama local y que hemos hecho algunos cambios, en este caso siempre es mejor decidir si hacemos un push o un git reset --hard o algo por estilo que descarte los cambios para cualquier commit:
1. git checkout MVVM_Bernat
2. git reset --hard (esto elimina cualquier cambio, lo deja al último commit)
Si hacemos cambios que van a al MVVM: Flujo subida de cambios
git checkout MVVM_Bernat (o MVVM_Ivan )
add/commit/ -> mensaje conciso pero descriptivo
git push origin MVVM_Bernat (ó MVVM_Ivan )
git checkout MVVM -> para hacer merge
git merge MVVM_Bernat (o MVVM_Ivan)
git push origin MVVM -> subimos a la rama principal
La idea principal de todo esto es que tengamos una copia local de la rama principal cada developer y hagamos cambios, los subamos y hagamos merge a la principal.
Que sincronicemos nuestro trabajo siempre y no andar con muchas ramas que con el tiempo se quedan y estancadas.
Si se hace algo muy distinto al repositorio actual, no crear ramas, crear otro repositorio totalmente diferente. Es decir, para proyectos que no respeten para nada la rama main, se deben de crear en otro repo. ( Sé que esto ahora no lo cumplimos, pues tenemos dos proyectos, uno MVVM y otro no MVVM, pero esto lo vamos a cambiar, haremos dos proyectos.)
Cualquier feature o cambio experimental pero que respeta la estructura de la rama principal, se hará en el local. Si ya vemos que es algo que se debe probar paralelamente se sacará a una rama paralela para hacer pruebas y luego se elminará o se hará merge.
Rama local (MVVM_Ivan ó MVVM_Bernat) se hacen cambios en alguna de ellas con lo cual quedamos:
La idea principal de todo esto es que tengamos una copia local de la rama principal cada developer y hagamos cambios, los subamos y hagamos merge a la principal.
Que sincronicemos nuestro trabajo siempre y no andar con muchas ramas que con el tiempo se quedan y estancadas.
Si se hace algo muy distinto al repositorio actual, no crear ramas, crear otro repositorio totalmente diferente. Es decir, para proyectos que no respeten para nada la rama main, se deben de crear en otro repo. ( Sé que esto ahora no lo cumplimos, pues tenemos dos proyectos, uno MVVM y otro no MVVM, pero esto lo vamos a cambiar, haremos dos proyectos.)
Cualquier feature o cambio experimental pero que respeta la estructura de la rama principal, se hará en el local. Si ya vemos que es algo que se debe probar paralelamente se sacará a una rama paralela para hacer pruebas y luego se elminará o se hará merge.