How to use find to list all files except those under .git? I want to find a list of file (no directories) excluding those under .git

I am trying out some suggested find syntax to achieve as suggested in this SO question:

https://superuser.com/questions/397307/how-to-ignore-certain-filenames-using-find

Here are what I attempted

find . -type f ! -name '*.git*' 

find . \( -type f  -prune -o \! -name '*git*' \)
find . \( -type f  -prune -o \! -name *git* \)
find . \( -type f  -prune -o ! -name *git* \)


But the output always contains files in .git. Here is a partial listing

.
./.coveragerc
./.DS_Store
./.git/.DS_Store
./.git/COMMIT_EDITMSG
./.git/config
./.git/FETCH_HEAD
./.git/HEAD
./.git/hooks
./.git/hooks/disable-commit-msg
./.git/hooks/pre-push
./.git/hooks/prepare-commit-msg
./.git/index
./.git/info
./.git/info/exclude
./.git/info/refs
./.git/logs
./.git/logs/HEAD
./.git/logs/refs
./.git/logs/refs/heads
./.git/logs/refs/heads/1312


The version OS X is El Capitan‎, and I am using zsh. find is located in /usr/bin

Is it an OS X find issue? If so, how can I achieve my intended result? 

EDIT

I tried this command 

find . \( -type d -name '.git' -o -type f  \)  -prune


and it is closer to what I want. However in the output I can still see the folder .git
The accepted answer is not correct but with a comment it starts you off.

To get no html files

find . -type f   ! -name '*.html'


-name loks at the file part of the path for the whole path you need --wholename so

find . -type f  ! -wholename '*/.git/*' ! -name '*.html'


So only get files (-type) ignore the .git directory - note you need to enter the directory delimiters and the . or else you remove files like .gitconfig which are valid ones 

OK this looks at all file -prune might look at less but the speed probably does not matter it is better as in all code to get an understandable working thing first