Search code examples
gitdirectorygitignoreignore

why is git finding directories that don't exist in my home directory?


I am running a git repository on Windows 10 in my home directory. When I run git status, Git finds directories that don't exist on my machine:

warning: could not open directory 'AppData/Local/Application Data/': Permission denied
warning: could not open directory 'AppData/Local/ElevatedDiagnostics/': Permission denied
warning: could not open directory 'AppData/Local/History/': Permission denied
warning: could not open directory 'AppData/Local/Microsoft/Windows/INetCache/Content.IE5/': Permission denied
warning: could not open directory 'AppData/Local/Microsoft/Windows/INetCache/Low/Content.IE5/': Permission denied
warning: could not open directory 'AppData/Local/Microsoft/Windows/Temporary Internet Files/': Permission denied
warning: could not open directory 'AppData/Local/Temporary Internet Files/': Permission denied
warning: could not open directory 'Application Data/': Permission denied
warning: could not open directory 'Documents/My Music/': Permission denied
warning: could not open directory 'Documents/My Pictures/': Permission denied
warning: could not open directory 'Documents/My Videos/': Permission denied
warning: could not open directory 'Local Settings/': Permission denied
On branch master
Your branch is up to date with 'origin/master'.

Many of the directories above do not exist. Why is Git trying to open these nonexistent directories?

My .gitignore:

#===============================================================================
# Blacklist everything, then whitelist sub-directories
#===============================================================================
# this allows me to whitelist individual FILES in sub-directories
*
!*/


#===============================================================================
# WHITELIST SPECIFIC THINGS
#===============================================================================
!.gitignore
!.bashrc
!.alias.sh
!.update.home.sh
!.startup.sh
!.todo
!dictionary.txt
!./.config/git/gitk
!Documents/ShareX/ApplicationConfig.json

Solution

  • An optional prefix "!" which negates the pattern; any matching file excluded by a previous pattern will become included again.

    from gitignore documentation.

    So if i get this correctly your line !*/ (second line in your blacklist area) re-includes all directories in your home directory, apparently including all those above.

    To show everything (also the hidden directories) in your home directory open the command prompt "Win" + "R", type cmd and hit "Enter". Enter dir /a, hit "Enter" and you will see that all the directories you were wondering about do show up in your home directory.