Recently I started developing IOS app and I use git for version control. And we have several developers working together but every time we changed things in the project, the XCode will generate some unrelated codes in project.pbxproj file. I would like to know why xcode will have this behavior and sometimes what xcode does is simply swapping the location of two PBXContainerItemProxy segments. This cause lots of headache everytime I want to link a framework and I have to manually go into project.pbxproj file to see if some certain changes need to be reverted. Could you please give me some answers why XCode will have these kind of behaviors and the way to avoid them?