Archivo de la etiqueta: Git

Como resolver conflictos entre dos ramas remotas de un repositorio y su bifurcación (fork) en Git

[programación]

La situación es la siguiente: Tenemos un repositorio remoto en Bitbucket que es el principal, y después tenemos una bifurcación (fork) para cada desarrollador, los cuales suben sus cambios mediante solicitudes de integración (pull request). El problema surge al intentar sincronizar ramas entre los distintos repositorios y aparecen conflictos en remoto.

Solucionar este tipo de conflictos en local es sencillo mediante por ejemplo NetBeans, por lo que la solución pasa por convertir el conflicto remoto en un conflicto local.

Supongamos que la rama conflictiva es feature/nueva-funcionalidad

1. Configuramos el repositorio principal como repositorio remoto

git remote add upstream https://Usuario@bitbucket.org/Propietario/Repositorio-principal.git
git fetch upstream

2. Nos situamos en nuestra rama local

git checkout feature/nueva-funcionalidad

3. Obtenemos los posibles cambios desde nuestro repositorio remoto bifurcado

git merge origin/feature/nueva-funcionalidad

4. Obtenemos los cambio del repositorio principal

git merge upstream/feature/nueva-funcionalidad

5. Aquí aparecerán los conflictos que nos impedían hacer el merge entre repositorios remotos. Resolvemos los conflictos y los anotamos (commit). Al terminar ya podemos subir los cambios a nuestro repositorio remoto bifurcado.

git push origin feature/car-insurance-alert

Montar un entorno de desarrollo a partir de un Git remoto

[linux] [mac] [programación]

En resumen, lo que queremos hacer es un checkout de una o varias ramas del repositorio remoto. Para ello seguimos los siguientes pasos:

1. Crear una carpeta donde tendremos nuestro entorno y entrar en ella.

2. Inicializamos el repositorio:

git init

3. Añadimos la ruta al repositorio remoto:

git remote add origin https://[usuario]@[repositorio]

4. Obtenemos las ramas/tags remotos. En este punto nos pedirá la contraseña del repositorio remoto:

git fetch

5. Hacemos el checkout de la rama con la que queramos trabajar:

git checkout develop

Y listo! A trabajar!