Like the title says, is it possible to add "files without dots in them" to the gitignore file?
I imagine this would take care of all those bothersome extensionless files.
Like the title says, is it possible to add "files without dots in them" to the gitignore file?
I imagine this would take care of all those bothersome extensionless files.
*
tells git to ignore everything.!*/
then unignores anything that is a directory. This is crucial.!*.*
unignores all files with an extension.Without the
!*/
rule, directories without a.
in the name would not be listed and none of your desired files would be added outside the root folder.For reference, read these two sections in the .gitignore documentation stand out:
In my folders there are lots of files with
*.c, *.h, *.txt, *.csv
etc. extensions and binary files without any extension. So I needed to ignore all files execpt*.c,*.h
and.gitignore
, So this works for me, from the.gitignore
example:You can try a combination similar to:
That
gitignore
exclusion rule (a negated pattern) should ignore all files, except the ones with an extension.As mentioned below by Mad Physicist, the rule is:
It is not possible to re-include a file if a parent directory of that file is excluded. (
*
)(
*
: unless certain conditions are met in git 2.?+, see below)That is why
!/**/
is important (white-listing the parent folders recursively) if we want to white-list files.I mentioned that same rule in similar cases like:
As Jakub Narębski comments, you might not want to ignore all extensionless files.
My advice:
.gitignore
as shown above: the already versioned files won't be ignored (even if they don't have an extension). All the others will be ignored.For any future extensionless files that you would want to version:
Note that with git 2.9.x/2.10 (mid 2016?), it might be possible to re-include a file if a parent directory of that file is excluded if there is no wildcard in the path re-included.
Nguyễn Thái Ngọc Duy (
pclouds
) is trying to add this feature:However, since one of the rules to re-inclusion was:
This wouldn't have worked here anyway.