The branches I need to merge are called test and test-passed. Merging will always be fast-forward, from test to test-passed as commits to test-passed are only done automatically from test. This is currently working, just wondering if the approach is correct. The script is executed by Hudson, once all testing is complete.
git status
git reset --hard
git pull origin test
git checkout origin/test
git pull origin test-passed
git checkout origin/test-passed
git merge origin/test
git push origin HEAD:test-passed
One specific question I have, is if I need to create local branches as well (-b) or is that not required?
Output from above:
+ git status HEAD detached from origin/test-passed nothing to commit, working directory clean + git reset --hard HEAD is now at 16a2d8d updated version + git pull origin test From ssh://github.com/myrepo.git * branch test -> FETCH_HEAD Already up-to-date. + git checkout origin/test HEAD is now at 16a2d8d... updated version + git pull origin test-passed From ssh://github.com/myrepo.git * branch test-passed -> FETCH_HEAD Already up-to-date. + git checkout origin/test-passed Previous HEAD position was 16a2d8d... updated version HEAD is now at 2aa260d... Merge branch 'dev-integration' into test + git merge origin/test Updating 2aa260d..16a2d8d Fast-forward app/application.properties | 8 ++++---- 4 files changed, 14 insertions(+), 5 deletions(-) + git push origin HEAD:test-passed To ssh://[email protected]/myrepo.git 2aa260d..16a2d8d HEAD -> test-passed
origin/test-passed
identical toorigin/test
? Why bother having a localtest-passed
branch at all? \$\endgroup\$fetch
andpull
don't update local branch refs (you can see that in your outputtest -> FETCH_HEAD
. What are you expecting those lines are doing for you? Why are you checking outorigin/test
before checking outorigin/test-passed
? Checking out remote refs doesn't leave you on a local branch (you might already realize this because your push line usesHEAD
to make the push work) but I figured it was worth mentioning specifically just to be sure. If your merge is always a fast-forward then use--ff-only
on the merge to have git ensure that too. \$\endgroup\$