Подтвердить что ты не робот

Должен ли я хранить репозиторий git в домашней или рабочей среде Eclipse?

Я просто перехожу от svn к git, и я очень хочу заложить хорошие основы.

По умолчанию Eclipse хочет сохранить мой локальный репозиторий clone в ~/ git. Мне удобнее хранить все данные для задачи в одном и том же рабочем пространстве - поэтому я склонен хранить ее в своей рабочей области.

Есть ли существенные плюсы и минусы, которые я должен рассмотреть?

Я не собираюсь делать много разветвлений - я действительно спускаюсь по маршруту dvcs в основном, чтобы преодолеть некоторые ненадежные проблемы с интернет-коммьюнити.

4b9b3361

Ответ 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 одновременно; и, скажем, когда вы отмечаете фиксацию проекта, вы фактически отмечаете фиксацию полного репозитория (группы проектов).

Ответ 2

.git должно быть где ваше рабочее дерево (то есть файлы, представляющие текущий HEAD текущей ветки, на которой вы работаете)

Помните, что с Git ветки не являются каталогами (в отличие от SVN), поэтому ваше рабочее дерево будет представлять непосредственно содержимое ветки, а не несколько каталогов (для ваших разных ветвей), за которыми следует содержимое для каждой ветки.

Мне обычно нравится выделять источники проекта отдельно от рабочего пространства Eclipse, но это вопрос предпочтения.

Ответ 3

Я думаю, хорошая идея сохранить дерево версии git вне рабочей области. Таким образом можно отделить проекты от разных репозиториев, но все же обрабатывать их в одном и том же рабочем пространстве.

Кроме того, если вы поместите код за пределы рабочей области, вы можете организовать свои проекты иерархически за пределами рабочей области (в рабочей копии), но все равно увидите плоское представление в Eclipse.