It's pretty common-place when working in a repository with a lot of contributors to prefix all your branches with your name (or some other identifier). However, I don't like having to type my name every time I want to switch branches, so I usually leave it out of the local branch names.
So for example to push for the first time I usually use git push -u origin HEAD:daniel/branch-name, and when I am checking out a new branch I previously pushed from another machine I use git checkout -b branch-name --track origin/daniel/branch-name.
However, I have traded off typing my name when changing or manipulating branches for typing a lot more to set up a new branch. Is there some way of doing this automatically?
Update: As I was typing the question the answer occurred to me, so I've answered my own question, but I would still prefer a way of getting git to do this natively.
Like when I call git push -u origin branch-name, I want it to be equivalent to git push -u origin branch-name:daniel/branch-name. If I want something else I can specify that manually like git push -u origin branch-name:branch-name.
Similarly, when I call git checkout new-branch if new-branch doesn't exist and no remotes have a matching tracking branch, before giving up and returning an error, search for tracking branches which match daniel/new-branch.