Должен ли я хранить git-репозиторий в Home или Eclipse Workspace? - PullRequest
45 голосов
/ 07 октября 2011

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

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

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

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

Ответы [ 3 ]

28 голосов
/ 08 октября 2011

Я тоже переключаюсь на Git в Eclipse и читаю об этой проблеме.Кажется, что текущая мудрость (хотя не все с этим согласны):

  • Привыкайте НЕ располагать вашими проектами под каталогом рабочей области.

  • Есть один репозиторий git для каждой группы связанных проектов затмений (и, возможно, больше файлов, конечно).Концепция «связанных проектов» зависит от вашего удобства [*]

  • Для каждого репозитория - один каталог первого уровня для каждого 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 голосов
/ 07 октября 2011

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

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

2 голосов
/ 07 октября 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...