手元のgit bashで開いたcheckoutのヘルプに

```
git checkout -b|-B <new_branch> [<start point>] 
Specifying -b causes a new branch to be created as if git-branch(1) were called and then 
checked out. In this case you can use the --track or --no-track options, which will be passed 
to git branch. As a convenience, --track without -b implies branch creation; see the 
description of --track below. 
```
```
If -B is given, <new_branch> is created if it doesn’t exist; otherwise, it is reset. 
This is the transactional equivalent of

$ git branch -f <branch> [<start point>]
$ git checkout <branch>

that is to say, the branch is not reset/created unless "git checkout" is successful.
```

と書かれていまして、
git branch -f とやるのと同じようなことなのかな、と。

それで、git branchの方は
```
--force 
Reset <branchname> to <startpoint> if <branchname> exists already. Without -f git branch 
refuses to change an existing branch. 
```

と書かれていたので、-b　はresetのために実施しているのかな、と思いました。

個人的には、リモートのリポジトリをローカル側のリポジトリとして扱うために
```git checkout -b ```したことがあります。