Mi repositorio git tiene 2 ramas: master y develop. Quiero un script que combine todos los cambios de desarrollo a maestro automáticamente.Secuencia de comandos para fusionar 2 ramas de git de forma automática?
que utilizan Jenkins: El Git plugin de clones el repositorio y luego este guión (variable de la 'versión' es un parámetro de trabajo) es ejecutado:
# merge
git checkout -b develop origin/develop
git checkout master
git merge -Xtheirs --squash develop -m "v${version}"
# commit
git commit -m "v${version}"
# tag
git tag v${version} -m "v${version}"
# push
git push origin v${version}
lo probé en un repositorio de prueba y falla con :
git funden -Xtheirs desarrollar
CONFLICTO (eliminar/modificar): test.txt borrado en desarrollar y modificado en CABEZA. Versión HEAD of test.txt a la izquierda en el árbol.
Falló la combinación automática; arregla los conflictos y luego compromete el resultado.
¿Cómo puedo solucionar este conflicto de forma automática ? Quiero la secuencia de comandos para añadir siempre/modificar/borrar los archivos de acuerdo a la rama 'desarrollar', ya que amo no es tocado todos modos ...
Usted dice que "amo no se toca", pero se obtiene una conflicto de todos modos? Si en realidad nunca fuera táctil, bastaría con una simple fusión de git --sólo origen/desarrollo--. – fge
Si desea _replace_ la versión maestra con la versión 'origin/develop' y no registra una fusión de commit, ¿para qué molestarse con' merge --nosquash'? ¿No sería más sencillo simplemente 'git checkout master && git reset origin/develop && git reset --soft HEAD @ {1}' o similar? –