How to properly use git with a team?

I am working on a game with one of my friends, and every time we push / fetch there are multiple errors relating to binary files / metadata files because unity changes the files automatically on startup and while we are just generally using the app. Because the files are not matching, not everything is able to be added, and there are constant errors. What is the best way to deal with this?

You need to tell the version control system to ignore those files. I use .git and I’ve recently found this amazing unity .gitignore file on github which basically syncs only Assets and ProjectSettings folders. ProjectSettings contain useful info like layers, and quality settings, etc…

Apart from this, github also has a very nice feature of providing up-to-date gitignore files by default when you are setting up a repo there:

I use a .gitignore and a .gitattributes file to manage the basics. Just add this into your git repository folder.

.gitignore:

##################
# Unity ignores:
##################

Temp/
Library/
obj/
ExportedObj/

*.csproj
*.pidb
*.unityproj
*.suo
*.sln
*.svd
*.userprefs
*.user
*.booproj

################
#OS generated
################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

.gitattributes:

*.prefab binary
*.unity binary
*.anim binary
*.controller binary
*.mat binary
*.asset binary
*.png binary
*.jpeg binary
*.jpg binary
*.wav binary
*.mp3 binary

Find information: here and here

There are plenty of blogs/posts out there explaining how to do that.
One very simple that cover all the passages is the following:
Unity and Git

Remember that apart from the necessary gitignore you have to change also editor in project settings.
Probably the error you get could do to the meta option that is there.