Most IDEs just use some kind of project file, or are able to use directly build tools. But Eclipse always has to create this workspace full of metadata that it likes to corrupt every now and then!
you can specify the workspace locn at startup (with -d iirc) so with an alias and/or some bash scripting you can use a separate workspace for each project (I have my projects in ~/proj as subdirs with commands to select which is current - although I only use eclipse for c dev work, intellij idea for java + python).
also, use a separate build tool (eg ant) and don't store build info in eclipse (basically, use as default a config as possible and "import from" the build tool). then if you do need to start from scratch you lose very little (and don't add the eclipse metadata to git).
Most IDEs just use some kind of project file, or are able to use directly build tools. But Eclipse always has to create this workspace full of metadata that it likes to corrupt every now and then!