diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000000000000000000000000000000000..db7ea8c5bb6a5356721f9056fee9e7b30db71ec9
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,34 @@
+# Set default behaviour, in case users don't have core.autocrlf set.
+* text=auto
+
+# Explicitly declare text files we want to always be normalized and converted 
+# to native line endings on checkout.
+*.c text ident
+*.C text ident
+*.f text ident
+*.F text ident
+*.m text ident
+*.mm text ident
+*.cpp text ident
+*.cc text ident
+*.cxx text ident
+*.h text ident
+*.hh text ident
+*.inc text ident
+*.txt text ident
+
+*.sh text ident
+*.py text ident
+*.pl text ident
+*.mk text ident
+Make.* text ident
+
+# Declare files that will always have CRLF line endings on checkout.
+*.sln text eol=crlf
+*.dsp text eol=crlf
+*.dsw text eol=crlf
+
+# Denote all files that are truly binary and should not be modified.
+*.png binary
+*.jpg binary
+*.pdf binary