Fusión de sucursales a través de Jenkins Pipeline

Actualmente estoy intentando fusionar nuestra twig principal en nuevas twigs de versión para ver si la versión funciona bien (para probar fusiono las twigs 'master' e 'infra'). Lo hago con una secuencia de commands en Jenkins. Sin embargo, tengo conflictos de fusión en cada file que se fusiona. Entonces, por ejemplo, si el file foo / bar.txt se modificó en la twig inferior, el resultado en mi repository local se ve así:

$ git merge master Auto-merging foo/bar.txt Merge made by the 'recursive' strategy. ... 

Usando el script que se supone que hace lo mismo, obtengo el siguiente resultado:

 ERROR: Branch not suitable for integration as it does not merge cleanly: Command "git merge --ff c98425e0c22d1ad35749c5eca03ca44652e22c95" returned status code 1: stdout: Auto-merging foo/bar.txt CONFLICT (add/add): Merge conflict in foo/bar.txt Automatic merge failed; fix conflicts and then commit the result. 

He intentado bastantes configuraciones diferentes pero no he podido hacer que Jenkins fusione twigs automáticamente. Aquí está la parte que verifica el repository y debería fusionarlo que creé usando el generador de fragments:

 checkout changelog: true, poll: true, scm: [$class: 'GitSCM', branches: [[name: '*/infra']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'LocalBranch', localBranch: 'infra'], [$class: 'PreBuildMerge', options: [fastForwardMode: 'FF', mergeRemote: 'origin', mergeStrategy: 'MergeCommand.Strategy', mergeTarget: 'master']]], submoduleCfg: [], userRemoteConfigs: [[cnetworkingentialsId: '<id>', name: 'origin', refspec: '+refs/heads/master:refs/remotes/origin/master', url: '<url to repo>']]] 

Editar: estoy usando una solución alternativa ahora mismo, revisando el repository y luego ejecutando la combinación mediante el command de shell:

 checkout poll: false, scm: [$class: 'GitSCM', branches: [[name: "${buildGitRevision}"]], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'WipeWorkspace']], submoduleCfg: [], userRemoteConfigs: [[cnetworkingentialsId: '<id>', url: '<url to repo>']]] [...] sh "git merge origin/master" 

Si hay conflictos resultantes de una fusión, es prácticamente imposible fusionarlos a través de un process desatendido . Manifiestamente, si hay conflictos, la twig no está list para fusionarse.

Además, no desearía resolver los conflictos de combinación a través de un process desatendido: ¿cómo podría saber qué versión elegir? Sí, puedes forzar a git a elegir una u otra twig con git merge master -X theirs o git merge master -X ours , pero la necesidad de hacer esto indica un problema de flujo de trabajo.