Johannes Sixt wrote:
Peter schrieb:
Hi
I want to exclude binaries except in a dir tree that I do not control.
In .gitignore I have:
I would expect that all *.exe and *.o are ignored except those somewhere
in the vendor dir tree.
However, the *.exe and *.o in the vendor dir tree are also ignored.
This works for me:
*.exe
*.o
!vendor/*.exe
!vendor/*.o
Note that git-status does not descend into directories from which no files
are tracked. Therefore, this will work only after you have git-added at
least one file from vendor/.
git ls-files -o --exclude-standard does descend into the directory.
Furthermore, the !vendor/*.exe patterns are not recursive. Perhaps it is
easier for you to have a separate vendor/.gitignore that has:
!*.exe
!*.o
These _are_ recursive.
-- Hannes
Thanks a lot, that clarifies the problem for me. As far as I understand now:
1) I can't have just one .gitignore file in the root dir, if I want to
_recursively_ inverse the exclude pattern for a sub dir tree.
In this case, I have to put individual .gitignore files in the sub trees
I want to re-include.
2) In order to see what will be staged, I have to use the :
git ls-files -o --exclude-standard
instead of :
git ls-files -o -i --exclude-from=.gitignore
because the latter won't consider .gitignore patterns in subtree
Peter
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html