So, your designers of course refuse to learn git. Maybe you constantly have to ferret out more things to put in .gitignore. One guy is trying out git and pushing some media changes in the master repository. Two other designers might be using ftp to push their changes, two managers are ... well, doing whatever it is that they do.
At any rate, some jpgs have gotten out of sync in your repository and you now have a conflict on your hands.
You tried:
$ git add .
$ git commit -m "merging in a bunch of diverse changes from who knows where"
$ git push
and, you got something akin to:
error: failed to push some refs to 'git@example.com:biouser/repo.git'
So, let's grab those changes from remote with git pull, uh oh:
warning: Cannot merge binary files: HEAD:myproject/media/img/foo.jpg vs. 74hf8419n183n83:myproject/media/img/foo.jpg
Well, let's say foo.jpg doesn't belong in version control anyways. And, the last thing that you want to do is change what is there on the eventual production server. Let's just leave it in place but remove it from version control. git rm will remove it from the filesystem. But, adding the files to .gitignore will not solve your merge conflict now (maybe we should have checked the git status more often and not committed changes so rashly).
Brace yourself, this kind of pro tip can't be found in the manual:
$ mkdir tmp
$ echo 'tmp' >> .gitignore ; echo 'myproject/media/img/foo.jpg' >> .gitignore
$ cp myproject/media/img/foo.jpg tmp/
$ git rm myproject/media/img/foo.jpg
$ git add . ; git commit -m 'use git guys!!!'; git push
$ cp tmp/foo.jpg myproject/media/img/