This .gitignore is not correct. At least was not working for me.
Ignoring /media/* and then excluding !/media/customer/.htaccess is not
working. According to the Git manual, "It is not possible to re-include
a file if a parent directory of that file is excluded."
(https://git-scm.com/docs/gitignore).
Found a solution here:
http://stackoverflow.com/questions/987142/make-gitignore-ignore-everything-except-a-few-files/
16318111#
16318111
#--------------------------#
/app/etc/local.xml
+
/media/*
!/media/.htaccess
+
+!/media/customer
+/media/customer/*
!/media/customer/.htaccess
+
+!/media/dhl
+/media/dhl/*
!/media/dhl/logo.jpg
+
+!/media/downloadable
+/media/downloadable/*
!/media/downloadable/.htaccess
+
+!/media/xmlconnect
+/media/xmlconnect/*
+
+!/media/xmlconnect/custom
+/media/xmlconnect/custom/*
!/media/xmlconnect/custom/ok.gif
+
+!/media/xmlconnect/original
+/media/xmlconnect/original/*
!/media/xmlconnect/original/ok.gif
+
+!/media/xmlconnect/system
+/media/xmlconnect/system/*
!/media/xmlconnect/system/ok.gif
+
/var/*
!/var/.htaccess
+
+!/var/package
+/var/package/*
!/var/package/*.xml
+