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

Почему не рекомендуется иметь папку проекта Eclipse в качестве хранилища Git?

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

Почему это?

4b9b3361

Ответ 1

Из справочных страниц Eclipse EGit,

Вероятно, не рекомендуется делать проект корневой папкой вашего репозитория

Причина в том, что вы никогда не сможете добавить еще один проект в этот репозиторий, так как файл .project будет занимать корневую папку; вы все равно можете добавлять проекты в виде подпапок, но, как известно, такое вложение проектов вызывает множество проблем повсюду. Чтобы добавить другой проект, вам нужно будет переместить проект в подпапку в репозитории и добавить второй проект в качестве другой подпапки, прежде чем вы сможете зафиксировать это изменение.

Дополнительная информация

Это хорошая идея сохранить ваш репозиторий вне рабочего пространства Eclipse

Для этого есть несколько причин:

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

Папка метаданных (.git-) будет дочерним элементом рабочей области Eclipse. Неясно, может ли это привести к нежелательным перемещениям по Eclipse.

Вы можете легко уничтожить свой репозиторий, уничтожив рабочее пространство Eclipse

Ответ 2

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

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

Кроме того, мне нравится добавлять .project, .classpath и .settings в репозиторий git (как Does git исключить файлы проекта eclipse из новое репо по умолчанию? ")