This is my .gitignore:
#ignore all kind of files * #except php files !*.php
All I want is to ignore all kind of files except the .php ones, but with this .gitignore I'm also ignoring folders...
Is there a way to tell git to accept my project folder structure while keeping the track only of the .php files?
It seems like now I can't add folders to my repo:
vivo@vivoPC:~/workspace/motor$ git add my_folder/ The following paths are ignored by one of your .gitignore files: my_folder Use -f if you really want to add them. fatal: no files added
gitignore is a plain text file in which each line contains a pattern for files or directories to ignore. It uses globbing patterns to match filenames with wildcard characters. If you have files or directories containing a wildcard pattern, you can use a single backslash ( \ ) to escape the character.
You can have multiple . gitignore , each one of course in its own directory. To check which gitignore rule is responsible for ignoring a file, use git check-ignore : git check-ignore -v -- afile .
This is simple, just add another entry !my_folder
in your .gitignore
#ignore all kind of files * #except php files !*.php !my_folder
The last line will take special care of my_folder
, and will not ignore any php files within it; but files within other folders will still be ignored because of the first pattern of *
.
EDIT
I think I misread your question. If you want to ignore all files except .php
files, you can use
#ignore all kind of files *.* #except php files !*.php
This will not ignore any file which doesn't have an extension (example: if you have README
and not README.txt
), and will ignore any folder with a .
in its name (example: directory named module.1
).
FWIW, git doesn't track directories, and hence there is no way to specify ignore rules for directory vs file
I had a similar problem; I wanted to whitelist *.c
, but the accepted answer didn't work for me, because I had files that didn't contain ".".
So for those who want to handle that:
# ignore everything * # but don't ignore files ending with slash = directories !*/ # and don't ignore files ending with ".php" !*.php
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With