问题
I've been getting familiar with creating, merging and deleting branches. I like to know where I am so I don't commit work into the wrong branch. I use git branch -a to see which branches I have. I think the asterix * shows which branch I'm currently on. What does it mean when I get:
* (no branch)
master
origin/HEAD
Because when I $git checkout mybranch I expect to see
* mybranch
master
origin/HEAD
回答1:
The git checkout man page does mention, for the branch name argument:
<branch>
Branch to checkout;
- if it refers to a branch (i.e., a name that, when prepended with "
refs/heads/", is a valid ref), then that branch is checked out.- Otherwise, if it refers to a valid commit, your
HEADbecomes "detached" and you are no longer on any branch.
So instead of having checked out a branch name, you must have checked out a tag name (valid commit), making your HEAD a detached one.
回答2:
It doesn't look like you have a branch called mybranch. If you want to create a branch that points to the current head, use git branch foo.
If you want one that points to another ref, use git checkout -b newbranch <ref>
来源:https://stackoverflow.com/questions/2743640/where-am-i-no-branch