Ответ 1
Я тоже переключаюсь на Git в Eclipse и читаю об этой проблеме. Кажется, что текущая мудрость (хотя не все согласны):
-
Привыкнуть к НЕ иметь ваши проекты под каталогом рабочей области.
-
Есть один репозиторий Git для каждой группы связанных проектов eclipse (и, возможно, больше файлов, конечно). Концепция "связанных проектов" зависит от вашего удобства [*]
-
Для каждого репозитория один каталог первого уровня для каждого проекта Java. Это означает, что у вас будет каталог
.git/
и на том же уровне каталоги проекта.
Пример: предположим, что "до GIT" у вас было одно рабочее пространство затмения с несколькими проектами:
/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)
Затем вы создадите два пустых каталога, по одному для каждого репозитория, скажем:
~/repositories/XXX/
~/repositories/YYY/
а затем с новым макетом Git у вас будет:
/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) делает все это для вас, когда вы нажимаете Team- > Share поверх существующего проекта и указываете (в примере) ~/repositories/XXX/.git/
как репозиторий, (~/repositories/XXX/
как "Рабочий каталог", оставьте "Путь в пределах репозиторий".)
[*] Имейте в виду, что здесь каждая группа проектов, из Git точки зрения, представляет собой набор каталогов внутри репозитория. Некоторые соответствующие последствия: в приведенном выше примере вы никогда не будете иметь в рабочем пространстве Eclipse две разные ветки/версии проектов projYYY1
- projYYY2
одновременно; и, скажем, когда вы отмечаете фиксацию проекта, вы фактически отмечаете фиксацию полного репозитория (группы проектов).