Basic Development Flow

1) Get up to date

git checkout master
git pull

2) Create new branch for feature

git checkout -b [ticket_no]/features/[feature_name]

3) Do a bunch of work

git add some files that have changed or added
git rm some files that have been removed

and then run test cases if you have.

4) Commit often

git commit -m "a comment about what you changed "

5) Keep up to date

git checkout master
git pull

6) Rebase master back into the feature branch

git rebase master [ticket_no]/features/[feature_name] 

This will put you back into your feature branch, you may need to resolve conflicts here.

7) Integrate your feature into master, Make sure your branch is up to date with master

git checkout master
git merge --no-ff [ticket_no]/features/[feature_name]
git push origin master

There should be no conflicts on master, they have been handled by keeping the feature branch up to date.
If the push to master fails, then someone beat you to it!
Simply go back and do the ‘Keep up to date’ step then try to integrate your feature into master again.

rebase master back into the feature branch

git rebase master [ticket_no]/features/[feature_name]

This will put you back into your feature branch
You may need to resolve conflicts here.