Hier ist eine sehr schöne Erklärung, wie Sie die fraglichen Dateien rekursiv aus Ihrem Git-Verlauf entfernen können: http://help.github.com/remove-sensitive-data/
Sehr nützlich, da Tools sonst dazu neigen, zu hängen, während versucht wird, den Unterschied zwischen den riesigen Dateien anzuzeigen, die eigentlich gar nicht hätten überprüft werden sollen ...
Folgendes können Sie (kurz gesagt) tun, um die größten Dinge loszuwerden:
cd YourProject
git filter-branch --index-filter 'git rm --cached --ignore-unmatch -r YourProject.xcodeproj/project.xcworkspace' HEAD
# see what you want to do with your remote here...
# you can: git push origin master --force
# or you can delete it and push a fresh new one from your cleaned-up local...
rm -rf .git/refs/original
git gc --prune=now
git gc --aggressive --prune=now
Hat sehr gut für mich funktioniert :)