>I could go with that

@jamill Could you please update the PR to reflect that proposal?

Although the xml documentation may be improved to reflect that, `Branch.IsCurrentRepositoryHead` implementation checks that the branch bears the same name that the one `HEAD` points to and that the both point at they same commit. So detaching the `HEAD`, when checking out an old snapshot of the branch might not be that ambiguous.

When one wants to "blindly" checkout the tip of a branch, one can still rely on the string based overload.

>If I grab a `Branch` and then something else updates `.git/refs/heads/my-branch`, I don't know that it makes sense for us to just say "sorry, I pointed to `deadbeef` when I was created" and proceed with checkout of a ref we know (or could at least figure out) to be wrong.

@dahlbyk I read you. But a `Branch` is nothing more than something that points at a specific commit (There again, maybe the xml documentation may require some love), and, letting `Checkout()` silently work against a different commit than the tip might be even more surprising.