From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeff King Subject: Re: problem switching branches Date: Wed, 27 Feb 2013 00:17:40 -0500 Message-ID: <20130227051740.GB10976@sigill.intra.peff.net> References: <512D4087.5070504@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Cc: "git@vger.kernel.org" To: "J.V." X-From: git-owner@vger.kernel.org Wed Feb 27 06:18:11 2013 Return-path: Envelope-to: gcvg-git-2@plane.gmane.org Received: from vger.kernel.org ([209.132.180.67]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UAZP8-00022Q-GR for gcvg-git-2@plane.gmane.org; Wed, 27 Feb 2013 06:18:10 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751559Ab3B0FRp (ORCPT ); Wed, 27 Feb 2013 00:17:45 -0500 Received: from 75-15-5-89.uvs.iplsin.sbcglobal.net ([75.15.5.89]:33644 "EHLO peff.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750890Ab3B0FRo (ORCPT ); Wed, 27 Feb 2013 00:17:44 -0500 Received: (qmail 13545 invoked by uid 107); 27 Feb 2013 05:19:19 -0000 Received: from sigill.intra.peff.net (HELO sigill.intra.peff.net) (10.0.0.7) (smtp-auth username relayok, mechanism cram-md5) by peff.net (qpsmtpd/0.84) with ESMTPA; Wed, 27 Feb 2013 00:19:19 -0500 Received: by sigill.intra.peff.net (sSMTP sendmail emulation); Wed, 27 Feb 2013 00:17:40 -0500 Content-Disposition: inline In-Reply-To: <512D4087.5070504@gmail.com> Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Archived-At: On Tue, Feb 26, 2013 at 04:08:55PM -0700, J.V. wrote: > I was on my master branch, I then checked out a branch ( > origin/somebranch ), made no updates > but did a few git pulls on the branch over about a week; then made a > small change to only a single file & committed & pushed. > > Now am trying to go back to my master branch and get: > > error: The following untracked working tree files would be > overwritten by checkout: > lib/derbyclient.jar > Please move or remove them before you can switch branches. > Aborting > > > I did not put that jar file there (I edited a single config file), > how do I now get back to my master branch? Not knowing anything about your project, it's impossible to say for sure, but this often happens with something like: 1. lib/derbyclient.jar used to be generated by your project's build procedure 2. You did a build of your project, generating the file in your working tree. 3. Meanwhile, somebody upstream added and commited lib/derbyclient.jar directly in the repository. This might have been intentional (it used to be a generated file, but now is included as source), or it may have been an accident (mistaken use of `git add`). 4. You try to switch to the master branch with the new commits from (3). Git sees that the copy of the file in your working tree would be overwritten and lost (since it was never committed by you), so aborts. If you are sure that the file in the working tree does not contain anything interesting, you can use "git checkout -f master" to force the overwrite. > I do not want to muck up the branch that I am now on by deleting anything. > Any ideas how this happened? You won't hurt the branch you are on; you will just lose the contents in the untracked working tree file. That's probably fine if it is a generated file, as in the scenario I described above. We know that the file is not included in the branch you are on (otherwise, it would not be listed as untracked). And even if it were, you would only impact the branch by committing the changes, not by changing the working tree. > Obviously someone put derbyclient.jar there, not sure, but it is > supposed to be there so do not want to remove as advised. It won't be removed; it will be overwritten with the version of the file that is on "master". Which is probably what you want; you may want to look at `git log master -- lib/derbyclient.jar` to see why it was added. -Peff