Updating git branches.
How to update a git branch OTHER than the one you’re currently on.
git branch -f {branch-to-change} {commit-to-change-to}
I recently setup a C.I. server to automatically generate builds of an iOS application and upload to TestFlight. I don’t want each and every push to master to trigger a new TestFlight build, so I configured my C.I. server to watch the release
branch.
I was starting to dislike the switch branch dance to trigger a new build.
What I used to do:
# When I was on the master branch
git checkout release
git merge master
git push
When things start to hurt, look for a better alternative. And with Git, there is almost always a more efficient way.
After digging a bit, I found the answer.
git branch -f {branch-to-change} {commit-to-change-to}
So to trigger a new build from master I can just:
git branch -f release master
git push origin release
Or wrap that in a Gulp task gulp tf
. And with CommandAllThings I can now type rake tf
, or grunt tf
or gulp tf
and they all trigger a new build to come out of TestFlight.
Or if you wanted to skip moving your local branch, you could just update the remote branch directly.
git push origin local_branch:remote_branch
So my workflow would look more like
git push origin master:release
Happy Automation!