Figured out the pbxproj problem. By adding this gitattribute, we are telling git to merge union (take all changes from both sides) and put it into the commit. The pbxproj file is when files are added or removed from the project, thats when it changes. So by doing a union, it will remove and add files together. The only conflict it can hit is if both sides try and add a file with the same file name.