Re: problem switching branches

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
--
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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]