I'm too switching to Git in Eclipse, and reading about this issue. It seems that current wisdom (though not everyone agrees) is:
Get used to NOT having your projects below the workspace directory.
Have one git repository for each group of related eclipse projects (and perhaps more files, of course). The concept of "related projects" is up to your convenience [*]
For each repository, one first level directory for each Java project. This implies that you'll have a .git/
directory, and, at the same level, the project directories.
Example: suppose that, "before GIT", you had one eclipse workspace with several projects:
/wk/workspace/.metadata/
/wk/workspace/projXXX/
/wk/workspace/projXXXtest/ (related with the previous)
/wk/workspace/projYYY1/ |
/wk/workspace/projYYY2/ > three related projects
/wk/workspace/projYYY3/ |
/wk/workspace/projZ/ (a project you are not going to version in git)
Then you'll create two empty directories, one for each repository, say:
~/repositories/XXX/
~/repositories/YYY/
and afterwards, with the new GIT layout, you'll have:
/wk/workspace/.metadata/
/wk/workspace/projZ/
~/repositories/XXX/.git/ (XXX related repository - non-bare)
~/repositories/XXX/projXXX/
~/repositories/XXX/projXXXtest/
~/repositories/YYY/.git/ (YYY related repository - non-bare)
~/repositories/YYY/projYYY1/
~/repositories/YYY/projYYY2/
~/repositories/YYY/projYYY3/
Eclipse (EGit) does all this for you when you click Team->Share over an existing project and specify (in the example) ~/repositories/XXX/.git/
as repository, (~/repositories/XXX/
as "Working directory", leave "Path within repository" blank).
[*] Bear in mind that here each group of projects is, from the Git point-of-view, just a set of directories inside a repository. Some relevant implications: in the above example, you'll never have in the Eclipse workspace two different branches/versions of projects projYYY1
-projYYY2
simultaneously; and, say, when you tag a project commit, you are actually tagging the full repository (group of projects) commit.