修正バージョン
最初は @{-1} を使っていましたが、うまくいかないケースがあるようなので、ブランチ名を直接 checkout するようにしました。
~/.gitconfig
rebase-master = "!sh -c 'branch=`git rev-parse --abbrev-ref HEAD` && git checkout master && git pull origin master && git checkout $branch && git rebase master'"
☁ git rebase-master
Switched to branch 'master'
From github.com:foo/bar
* branch master -> FETCH_HEAD
Current branch master is up to date.
Switched to branch 'foo'
Current branch foo is up to date.
最初に書いたうまくいかなかったバージョン
~/.gitconfig
rebase-master = "!sh -c 'git checkout master && git pull origin master && git checkout @{-1} && git rebase master'"
参考
"@{-n}" という特別な構文は「現在から数えてn個前にチェックアウトされていたブランチ」という意味だ。"feature" がチェックアウトされたなら、"@{-1}" は "master" を表している。