# Ignore all
*
# Unignore all with extensions
!*.*
# Unignore all dirs
!*/
### Above combination will ignore all files without extension ###
# Ignore files with extension `.class` & `.sm`
*.class
*.sm
# Ignore `bin` dir
bin/
# or
*/bin/*
# Unignore all `.jar` in `bin` dir
!*/bin/*.jar
# Ignore all `library.jar` in `bin` dir
*/bin/library.jar
# Ignore a file with extension
relative/path/to/dir/filename.extension
# Ignore a file without extension
relative/path/to/dir/anotherfile
Add something like
*.o
in the .gitignore file and place it at the root of your repo ( or you can place in any sub directory you want - it will apply from that level on ) and check it in.
Edit:
For binaries with no extension, you are better off placing them in bin/
or some other folder. Afterall there is no ignore based on content-type.
You can try
*
!*.*
but that is not foolproof.
To append all executables to your .gitignore
(which you probably mean by "binary file" judging from your question), you can use
find . -executable -type f >>.gitignore
If you don't care about ordering of lines in your .gitignore
, you could also update your .gitignore
with the following command which also removes duplicates and keeps alphabetic ordering intact.
T=$(mktemp); (cat .gitignore; find . -executable -type f | sed -e 's%^\./%%') | sort | uniq >$T; mv $T .gitignore
Note, that you cannot pipe output directly to .gitignore
, because that would truncate the file before cat
opens it for reading. Also, you might want to add \! -regex '.*/.*/.*'
as an option to find if you do not want to include executable files in subdirectories.
Your best bet with binaries is to either give them an extension that you can easily filter out with a standard pattern, or put them into directories that you can filter out at the directory level.
The extension suggestion is more applicable in Windows, because extensions are standard and basically required, but in Unix, you may or may not use extensions on your executable binaries. In this case, you can put them in a bin/ folder, and add bin/
to your .gitignore.
In your very specific, small-scope example, you can just put hello
in your .gitignore.
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