Persistence is an essential requirement for preferences. Developer's preferences are saved in .idea/ folder. It is recommended to add .idea/ to .gitignore to avoid merge conflicts. But then settings are lost whenever
- Project is cloned to a new environment
- Project settings are messed up and you want to roll back
- New developer joins a team
I end up emailing idea.zip folder to myself to not lose my settings. This feels wrong because the whole point of Git is to track changes to files. If I can email settings, then I can email the whole project as well.
I can use some dirty hack like a separate git project for developer settings. Import settings branch, merge dev source code branch, resolve conflicts,... But this is even more manual than .idea.zip email.
What is the right way to store developer's project settings on Git, but avoid edit warring? Is there a way to tell git to version settings per developer?