Re: Untracked working tree files
- From
- david@lang.hm <david@lang.hm>
- Date
- Oct 15, 2008, 20:17 UTC
- Message-ID
- <alpine.DEB.1.10.0810151314110.7808@asgard.lang.hm>
- In-Reply-To
- <alpine.LFD.2.00.0810151247560.3288@nehalem.linux-foundation.org>
On Wed, 15 Oct 2008, Linus Torvalds wrote:
Show 28 quoted lines
> On Wed, 15 Oct 2008, david@lang.hm wrote: >> >> I see it fairly frequently when switching between different branches of a >> project. > > So, at least for any normal switch, assuming file 'a' doesn't exist in the > other branch, you really should have a few different cases: > > - you have a dirty file, and git should say something like > > error: You have local changes to 'file'; cannot switch branches. > > because it refuses to modify the file to match the other branch (which > includes removing it) if it doesn't match the index. > > So this case shouldn't leave anything behind. > > - You have that extra file, but it's not in the index. > > If it's in your current HEAD, we should still notice it with something > like: > > error: Untracked working tree file 'tree' would be removed by merge. > > because now it's untracked (not in the index), but the switching > between branches tries to essentially "apply" the difference between > your current HEAD and the new branch, and finds that the difference > involves removing a file that git isn't tracking.
one place that I know I've run into it frequently is in an internal project that I did not properly setup .gitignore and did "git add ." and "git commit -a" to. that projects repository contains the compiled binaries and I frequently get these errors when switching trees.
that sounds like the first case.
I've seen discussion of a new sequencer functionality, would it allow me to define a .gitignore file and re-create the repository as if that file had existed all along?
David Lang
Show 16 quoted lines
> See? > > HOWEVER. > > If you're used to doing "git checkout -f" or "git reset --hard", both of > those checks are just ignored. After all, you asked for a forced switch. > > And at least in the second case, what I think happens is that git won't > remove the file it doesn't know about, so you'll have a "turd" left > around. > > So yes, you can certainly get these kinds of left-overs, but they really > should be only happening if you "force" something. Do you do that often? > > Linus >