Il mio repository git ha 2 rami: master e sviluppo. Voglio uno script che unisca tutte le modifiche da sviluppare a master automaticamente.Script per unire automaticamente 2 rami git?
ho usato Jenkins: Il Git plug-clona il repository e quindi questo script (variabile 'versione' è un parametro di lavoro) viene eseguito:
# 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}
ho provato su un repository di prova e non riesce con :
git merge -Xtheirs sviluppare
CONFLITTO (cancellare/modificare): test.txt eliminato nel sviluppare e modificato in HEAD. Versione HEAD di test.txt lasciata nell'albero.
Unione automatica non riuscita; correggere i conflitti e quindi confermare il risultato.
Come faccio a risolvere questo conflitto automaticamente? Voglio che lo script aggiunga/modifica/cancelli sempre in base al ramo "sviluppo", dal momento che il master non viene mai toccato comunque ...
Lei dice che "master è mai toccato", ma si ottiene un conflitto comunque? Se davvero non fosse mai toccato, sarebbe sufficiente un semplice 'git merge --ff-only origin/develop'. – fge
Se si desidera _replace_ la versione master con la versione 'origin/develop' e non si registra un commit merge, perché preoccuparsi di' merge --nosquash'? Non sarebbe più pulito semplicemente 'git checkout master && git reset origine/sviluppo && git reset --soft HEAD @ {1}' o simile? –