I'd probably just make this an entirely different case as these aren't really branch states.

Maybe something like:

``` ruby
on_branch = !current_branch.empty?

if !on_branch
  ref = `git log -1 --pretty=format:%h`
  warn "Boxen not currently on any branch (ref: #{ref}), won't auto-update!"
elsif !master
  local_branch = current_branch.split('/')[2..-1].join('/')
  warn "Boxen on a non-master branch '#{local_branch}', won't auto-update!"
# ...
```