From: Tomas Carnecky Date: Mon, 17 Dec 2012 05:30:45 GMT Subject: Re: How to specify remote branch correctly Message-ID: <1355722245-ner-6603@calvin> In-Reply-To: On Mon, 17 Dec 2012 16:13:08 +1100, Andrew Ardill wrote: > On 17 December 2012 16:06, Woody Wu wrote: > > 1. git checkout foo. > > By this command, I think I am checking out files in my local branch > > named foo, and after that I also switch to the branch. Right? > > Correct. Your working directory (files) switch over to whatever your > local branch 'foo' points to, and your HEAD is updated to point to > your local branch 'foo'. Unless something goes wrong/you have > conflicting files/uncommitted changes etc. 'git checkout foo' has special meaning if a local branch with that name doesn't exist but there is a remote branch with that name. In that case it's equivalent to: git checkout -t -b foo origin/foo. Because that's what people usually want.