Use different branch as master with Git
March 24, 2015
I came across this as I found it to be important. Currently Degree Search is split into three branches:
- Master: Current live version
- 3.0: Different version, stopped work once laravel 5 was released
- 5.0: Most recent version implemented in laravel 5.
At this point I no longer wanted the current version to be what I work on anymore, so I decided to change branches. However there doesn’t appear to be very straightforward, especially since the 5.0 branch doesn’t have a shared history from master, I pushed it remotely from my local dev environment.
Note: please make a backup branch of master before doing this, it’s easier this way
Following this Stack Overflow I was able to find something that not only merged the master history, but also replaced the files with my current dev branch. While on the master branch I ran these commands:
git checkout yourbranchname git merge --strategy=ours master git checkout master git merge yourbranchname
The writer of the answer also suggests more detailed messaging in the commit, so you could instead do this:
git checkout yourbranchname git merge --strategy=ours --no-commit master git commit # add information to the template merge message git checkout master git merge yourbranchname
This solved my issues of having to deal with the master branch, considering it’s being migrated to a newer version. All that was left after this was to switch to the backup older branch for the live site and test the new master branch. Other than a few things that got wiped away in the branch switch, everything merged correctly.
Written by Stephen Quick, a software developer based in Houston, Texas.