[*]
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.