git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: problem switching branches

From
JJ.V. <jvsrvcs@gmail.com>
Date
Mar 1, 2013, 20:52 UTC
Message-ID
<51311511.9080601@gmail.com>
In-Reply-To
<20130227051740.GB10976@sigill.intra.peff.net>
On 2/26/2013 10:17 PM, Jeff King wrote:
Show 23 quoted lines
> 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

This jar was put on the master branch last year; It does not exist in the branch that I am now on where I get the error message (I am on a branch that was created for a previous release).

>
>    2. You did a build of your project, generating the file in your
>       working tree.
This jar is downloaded from the web and put there; we did not generate.
Show 5 quoted lines
>
>    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`).

It was committed intentionally, last year, but does not exist in the branch that I am now on, but it is there.

Show 9 quoted lines
>
>    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 will try this.
Show 17 quoted lines
>
>> 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
Previous: Jeff King
Message 3 of 3 in “problem switching branches”
  1. J.V.Feb 26, 2013
  2. Jeff KingFeb 27, 2013
  3. J.V.Mar 1, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.