From: Johannes Sixt Date: Wed, 30 Apr 2008 12:47:51 GMT Subject: Re: difference between "git reset --hard" and "git checkout -f" Message-ID: <48186A77.9040601@viscovery.net> In-Reply-To: <20080430121606.GA23672@genesis.frugalware.org> Miklos Vajna schrieb: > On Wed, Apr 30, 2008 at 05:07:40PM +0530, Sitaram Chamarty wrote: >> (1) as in the subject line, what's the difference between these two >> commands? (I'm talking about those exact commands, not variations). >> I am unable to see any. > > git checkout is the tool to check out a branch or paths. git reset is to > reset HEAD (and as a side effect the working directory as well). so i > think only the sematics differ, there is no difference in practice. Moreover, if you are in the middle of a merge (e.g. when there are merge conflicts, or after git merge --no-commit), git reset --hard forgets about the merge, but git checkout -f does not; hence, a git commit after the latter would create a merge commit, which is usually not what you want. -- Hannes