Re: problem switching branches
- From
- J.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