Re: problem switching branches

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

 



On 2/26/2013 10:17 PM, Jeff King wrote:
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.


   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.


   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.


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]