Now you'll see the world as it was in master 's time, with none of your changes
from cow-plane. You fix problems and release this version of the plugin,
without any of the work-in-progress bits from your cow-plane timeline.
Try This Yourself
Let's try that for real in CowShooter . We're going to make a new branch, called
play , make some changes in both the master and play branches, and merge
changes from play back into master . Picture it like this:
The master time stream is going along, minding its own business. We'll create
a new branch to play on, and call it play :
$ cd ~/Desktop/code/CowShooter
$ git branch play
Then switch to that branch using gitcheckout :
$ git checkout play
Switched to branch 'play'
When in doubt as to where you are, just type git branch with no arguments,
and it will tell you what branches exist and mark the one you're on with an
$ git branch
So there are now two branches, and we're on play . Right now the content of
the two branches is identical. Let's fix that.
Edit CowShooter.java . Near the bottom of the if statement (that checks to see if
the player is holding leather), there's a call to our helper function, fling :
Canary.getServer().addSynchronousTask( new CowTask(victim));
fling(player, victim, 3);