"Sudipta GHOSH" <sudipta.in@xxxxxxxxx> writes: > In our git repository there are few branches like > > master > origin/B1 > origin/B2 > > After doing #git checkout origin/B1 I found that my current branch is > *(no branch) > > #git branch > *(no branch) > master > > Why its showing *(no branch) why not origin/B1 > > How I can checkout origin/B1 and after that my current branch will be > origin/B1 not the *(no branch) First, 'origin/B1' is so called remote-tracking branch, and its full name is refs/remotes/origin/B1. Those branches are updated _automatically_ by git on fetch, to follow branch 'B1' in 'origin' repository. Therefore, to not lose _your_ changes git doesn't allow checking out remote-tracking branches. You can checkout _state_ of such branch into anonymous noname branch, so called in git jargon "detached HEAD". What you can do is to create _local_ branch, closely tied to remote-tracking branch 'origin/B1', by using: $ git branch -b B1 --track origin/B1 Git would set up configuration for this branch in such way that "git pull" command given on 'B1' branch would "do the right thing"(TM) I really recommend reading "Git User's Manual" or "The Git Community Book" first... -- Jakub Narebski Poland ShadeHawk on #git -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html