The *.iml files are specific to each developer and almost always modified, forcing be to stash them before each pull.
The *.iml files define the modules and their dependencies, they need to be shared. The *.iws files are the workspace files with the developer config and they are ignored by Git.
You should only see changes to the *.iml files when a module’s dependencies change. What are you local modifications?
If you open the entire project by opening the pom.xml file using Intellij, then all the *.iml files are automatically generated. Maintaining the pom.xml file has the advantage of using one file for both the build and IDE configuration.
Unfortunately this doesn’t create a very usable project. Our build currently uses Ant and Ivy and our project layout doesn’t completely follow the Maven standard. The pom files are most useful for people who want to depend on OpenGamma in their own Maven projects.
We are looking at moving our build to Maven and when that’s complete it should be possible to remove the *.iml files and possibly the *.ipr file from Git.
We are also considering changing the IntelliJ project configuration to use the .idea directory format. That should make it possible to share some useful configuration (e.g. run targets) without requiring all users to share the same project config.