Subject: Re: index file list files not found in working tree

From: Rafik E Younan <[email-masked]>
Date: Tue, 25 Aug 2015 12:16:43 +0200

Hi,

I got a recommendation to use reset --hard. I tried it and it says the 
HEAD is now at correct commit, but missing files are not restored!

I tried `ls-tree --name-only` and it lists missing files and folders, 
but the actual working tree doesn't have these files and folders.

The question I'd like to answer, how does git generates the `index` file 
between checkouts?

Thanks,
Rafik

On 08/24/2015 12:34 PM, Rafik E Younan wrote:
> Hi,
>
> After several merges and rebases I finally got my branches and history 
> to reflect valid commits and proper history. Everything is pushed to 
> internal bare repo and the remotes seems OK.
>
> When I clone the updated repository, all branches reflect the correct 
> updated trees and blobs.
>
> The problem occurs only on the original local repository where all the 
> merging and re-basing took place!
>
> When I checkout a branch, several files and folders are deleted from 
> the working tree. When I examine the history of these files, there are 
> only commits of adding them and modifying them but no log for deleting 
> them, and they aren't deleted when I checkout the same branch in 
> another fresh cloned repo.
>
> Git status command doesn't indicate any changes in these files. I 
> found the files and folders names in the `.git/index` file. So after 
> manually removing the `.git/index` file and usinge `git reset` 
> command, `git status` indicates that the files and folders are deleted.
>
> I use `git checkout -- <File_or_folder_names>...` and restore all 
> missing files and folders, just then the working tree matches the 
> fresh checkout of the same branch on any other cloned repo.
>
> After examining the tree object of the current commit, all files and 
> folders exists, although clearly the checkout missed some of them!
>
> Because the repository is local and private, I can't share any url for 
> publicly accessible repository, and if one exists, no problem could be 
> found, because the problem resides in just this certain local clone.
>
> Answering the following questions might give some clues for the problem:
> * How does git populate the index file after every branch checkout?
> * Is there any object to reflect the content of the index file?
>
> I would appreciate any pointers for where the problem could be.
>
> Thanks,
> Rafik
>