Sometimes you want to experiment with a code which you have on your master branch but not want to save it to master branch. In this case, you can create another branch where you can experiment with ease - and if you are satisfied, you can merge the experiment to the master branch later.
git branch development
git checkout development
git add .
git commit -m "Initial commit on development branch"
git push origin development
After experimentation
git checkout master
git merge development
git push origin master
This method offers additional steps for safety.
git checkout development
git merge master (resolve any merge conflicts)
git checkout master
git merge development (there shouldn't be any conflicts left over)
or
git merge --no-ff development
... if you want to keep track of who did the merge and when.
Excuse my hopefully just uninformed question as I am new to that branch workflow "master = production ready; development = branch for development". I've read about the different git workflows, but I am not a software developer by trade.
I tried this workflow on one of my repos. The github webpage said that my development branch was x commits behind the master branch, after I did "merged --no-ff development" on the master branch and pushed it to github. I assume I can safely perform the pull/merge from master onto the development branch and it wont affect the work on my development branch, right?