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

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

Почему это?

2 ответов


с Eclipse EGit страницы справки,

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

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

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

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

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

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

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

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


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

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

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