Hi Jeff, and thanks for your reply :) El lun, 22 ene 2024 a las 22:34, Jeff King (<peff@xxxxxxxx>) escribió: > For example, I get: > > [setup] > $ git init > $ mkdir subdir > $ echo '*' >subdir/.gitignore > $ git add -f subdir/.gitignore && git commit -m "add gitignore" > $ touch subdir/file file > > [no exclusions] > $ git ls-files -o > file > subdir/file > > [use .gitignore] > $ git ls-files --exclude-per-directory=.gitignore -o > file > > [using standard excludes] > $ git ls-files --exclude-standard -o > file > > Do you get different results from that toy repo? If not, then what is > different about your main repo? Do you perhaps have a stray "*" match > somewhere in .git/info/exclude, etc? Or are you still providing > --exclude-from in addition to --exclude-standard? The difference lies in how I deal in my computer with ignored files. I have some files in all my repos which have to be ignored always, so I have that pattern in my core.excludes file. BUT those files have to be backed up on my system, just in case my local copy of the repo is lost for some reason, as they are files I need for development in my personal machine. If I use --exclude-standard, no matter if those files are being ignored by core.excludes OR .git/info/exclude, they won't appear in that 'list other files' command output. So, my previous idea was ignore ONLY those files ignored by the repository .gitignore file. That way, the other files that go in my core.excludes or .git/info/exclude will be listed and backed up. The problem here is that some of the repository gitignored files (files related to building, testing, etc.) have their own .gitignore file containing '*", but they are NOT present in the repo .gitignore. This is a common practice for Python virtual environments, for example. Summing up: or I end up backing up those directories that have their own .gitignore file (not the end of the world) or I use a different solution to decide which files are ignored but "precious" (I love that concept, see Junio C Hamano message for that) OR I add those directories to the .gitignore present in the repo. This last idea I don't like very much, as they are particular to my system, not the repo, for example, *I* may decide to use ESLint and node_modules for some particular web page I'm writing, but the related configuration should not go into the repository and should not be ignored in .gitignore, but in .git/info/exclude. I won't backup node_modules, of course, it is going to be recreated, but I may want to back up packages.json and .eslintrc. And both of those files will go into .git/info/exclude, so if I use --exclude-standard, they won't be backed up. Since as both Junio and you correctly pointed, this is in fact the expected, I'll try to find a different solution while the "precious" concept is finally implemented. I have a couple of ideas, like using a .giprecious file which my backup script can process easily, containing the untracked files to back-up. Thanks for the toy repo, helped me test the differences with my setup! -- Raúl Núñez de Arenas Coronado .