Working on a repository with 3-branches

I have a repository with 3 branches:

In order to update (merge) upstream into master, I need to

# git checkout upstream
# git pull /path/to/upstream/repo
# git checkout master
# git merge upstream
# git checkout work
# git merge master

I would prefer to do this without doing those multiple checkouts. SO, I found a way to do just that…

# git fetch /path/to/upstream/repo master:upstream
# git fetch . upstream:master 
# git merge master

However, this only work IF updating master involves purely fast-forward merge.

That is all I have to say about that.