My programs generally generate huge output files (~1 GB) which I do not want to be backing up to the git repository. So instead of being able to do
git add .
I have to do something like
git add *.c *.cc *.f *.F *.C *.h *.cu
which is a little bit cumbersome...
I feel fairly confident I could write a quicky perl script ls the directory contents into .gitignore and then remove files based on a .gitinclude (or some similar name) file, but that seems a little too hackish. Is there a better way?
I haven't had need to try this myself, but from my reading of TFM it looks like a negated pattern would do what you want. You can override entries in .gitignore with later negated entries. Thus you could do something like:
*.c
!frob_*.c
!custom.c
To have it ignore all .c files except custom.c and anything starting with "frob_"
create .gitignore file in your repository and you want to track only c files and ignore all other files then add the following lines to it....
*
!*.c
'*' will ignore all files
and ! will negate files be to ignored....so here we are asking git not to ignore c files....
The best solution to achieve this
create .gitignore file in repository root, and if you want to include only .c file then you need to add below lines to .gitignore file
*.*
!*.c
this will include all .c file from directory and subdirectory recursively.
using
*
!*.c
will not work on all version of git.
Tested on
git version 2.12.2.windows.2
Use this in gitignore
*.*
!*.c
tested with git version 2.7.4
来源:https://stackoverflow.com/questions/1279533/is-there-a-way-to-tell-git-to-only-include-certain-files-instead-of-ignoring-cer