Saltar al contenido

Resolución de solicitudes de incorporación de cambios con conflictos de combinación al usar permisos de rama en Bitbucket Server

Esta es la respuesta más completa que encomtrarás aportar, sin embargo obsérvala pausadamente y valora si se puede adaptar a tu proyecto.

Solución:

En el servidor de BitBucket, cuando tenemos algún conflicto al fusionar cualquier solicitud de extracción, podemos usar la herramienta git bash para resolverlo en nuestro sistema local y luego podemos confirmar y enviar nuestros cambios a la rama de función remota y fusionarlos a la rama principal.

Los siguientes pasos deben seguirse en orden en la herramienta git bash de nuestro sistema local.

(1) Abra la herramienta git bash y finalice la compra o cambie a su rama local de características.

(2) Extraiga los últimos cambios de la rama principal (por ejemplo, ‘maestro’) en la rama de funciones.

git pull origin master

(3) Si el comando anterior falla debido a algunos cambios locales, use el comando a continuación para ocultarlos; de lo contrario, continúe con el siguiente paso.

git stash

seguido por –

git pull origin master

(4) En caso de conflicto, la fusión automática fallará, por lo que debemos fusionarla manualmente. Use el siguiente comando para resolver conflictos.

git mergetool

De forma predeterminada, mostrará todas las herramientas de combinación disponibles y una de ellas se elegirá automáticamente. Si nos sentimos muy cómodos con cualquier otra herramienta, también podemos configurarla y git abrirá esa herramienta para nosotros para la resolución de conflictos.

(5) Una vez que se resuelvan los conflictos, confirme los cambios en la rama de funciones.

git commit

(6) Empuje los cambios a la rama de función remota.

git push

Verifique en el servidor BitBucket, ahora la solicitud de extracción debería actualizarse automáticamente.

Nuevamente intente fusionarlo; en caso de que no haya conflicto, se fusionará con éxito.

Si tiene un conflicto de fusión nuevamente (si alguien ha realizado nuevos cambios en la rama principal mientras estábamos resolviendo el conflicto en nuestro sistema local), siga los pasos anteriores nuevamente para resolverlos.

Deberíamos poder resolver con éxito cualquier conflicto si hemos seguido los pasos anteriores en orden.

Gracias, espero que ayude

Cuando entramos en el escenario de fusión automática sucia, ya sea por permisos de rama o por conflictos de fusión automática, usando ramas de funciones/corrección de errores, hacemos lo siguiente:

En su clon local del repositorio:

  1. Revisa la sucursal de destino con ‘git checkout [destination branch]’.
  2. Actualice la rama maestra con los cambios más recientes desde el control remoto con ‘git pull origin [destination branch on remote]’.
  3. Consulte una nueva rama de características con ‘git checkout -b feature/[my
    branch description]’
  4. Obtenga los últimos cambios de la rama de origen con ‘git fetch origin
    [source branch]’.
  5. Combine los cambios obtenidos en la rama de destino con ‘git merge FETCH_HEAD’. Usamos ‘git fetch’ en lugar de ‘git pull’ para evitar verificar la rama fuente y actualizarla primero. Por lo tanto, la diferencia entre ‘git merge [source branch]’ y ‘git merge FETCH_HEAD’ (después de ‘git fetch origin [source branch]’) es que el último fusionará el estado de esa sucursal en el control remoto, mientras que el primero fusionará el estado local de esa sucursal (que puede no ser el mismo o incluso no existir).
  6. Ahora arregla los conflictos.
  7. Prepara los archivos modificados con ‘git add’ o ‘git stage’.
  8. Confirme los cambios en la rama de características con ‘git commit -m [your
    commit message]’.
  9. Empuje los cambios al control remoto con ‘git push origin feature/[my
    branch description]’.
  10. Inicie una nueva solicitud de extracción en Bitbucket con la URL proporcionada en el mensaje de respuesta. Asegúrese de seleccionar las sucursales de destino correctas. Se debe permitir que continúe la fusión automática cuando sea posible.
  11. Rechace la solicitud de extracción original ahora que ha creado la nueva. Asegúrese de que no se agregaron otras confirmaciones al PR original automáticamente en su ausencia.

Aquí está en la CLI:

git checkout 
git pull origin 
git checkout -b feature/
git fetch origin 
git merge FETCH_HEAD

git stage 
git commit -m 
git push origin feature/

Desafortunadamente, las instrucciones se despegan un poco con ciertas combinaciones de permisos, y es algo que esperamos solucionar en algún momento (trabajo en Bitbucket).

Para solucionar el problema, puede resolver los conflictos en la rama de origen fusionando los cambios de la rama de destino.

Te mostramos reseñas y puntuaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *