Должны ли Eclipse-специфичные файлы в VCS игнорироваться, если используется Maven? - PullRequest
10 голосов
/ 17 ноября 2011

Я знаю, почему бы не зафиксировать Eclipse / IDE-специфичные файлы в VCS, подобном Git (который я на самом деле использую).Это одна из причин, по которой я использую Maven, и он генерирует эти файлы для вас, а , а не , когда они находятся под контролем версий.

Но мне интересно, следует ли игнорировать эти файлы в.gitignore, который сам находится под контролем VCS / Git:

.classpath
.project
.settings/
target/

Это нормально?

Каковы плюсы и минусы, поскольку сам файл .gitignore становится своего рода специфичным для IDE, так какфайлы игнорируются, есть IDE-специфичные?Любая лучшая практика?

Ответы [ 4 ]

11 голосов
/ 17 ноября 2011

С командой, над которой я работал, общим правилом было то, что вы не регистрируете ничего, что сгенерировано или получено Maven. Поскольку файл pom.xml содержит все необходимое для создания файлов .project, .classpath и .settings, мы не регистрируем их.

Мой .gitignore всегда содержит .classpath, .settings, .project и target для проектов Maven.

Редактировать: Как уже упоминалось в моем комментарии ниже, вот еще одно предложение: если вы действительно хотите, чтобы в вашем .gitignore не было записей, специфичных для Maven или IDE, попробуйте написать свой .gitignore, чтобы вы перечислите только то, что вы хотите отметить в .

*
!stuffIDoWantToCheckIn
2 голосов
/ 22 июня 2012

Я получаю информацию из следующей статьи: https://help.github.com/articles/ignoring-files

Это говорит о том, что вы можете создать глобальный файл gitignore (предлагается в ~ / .gitignore_global), содержащий .project и т. Д.находится вне репо, он не будет отображаться ...

Вы регистрируете его как глобальный файл игнорирования с помощью следующей команды:

git config --global core.excludesfile ~/.gitignore_global

В качестве альтернативы вы можете создать репонеотслеживаемые записи gitignore в файле .git / info / exlude

1 голос
/ 17 ноября 2011

Я согласен не ставить файлы IDE под контроль версий, это иногда вызывает все виды трудностей, и, как вы упоминали, использование maven делает это ненужным, поскольку любой разработчик может просто импортировать проект из POM и приступить к работе

Если эти файлы не занесены в .gitignore, их легко можно проверить по ошибке

Более того, я не нахожу их перечисление в .gitignore, что делает его специфичным для IDE, вы можете перечислить файлы проекта eclipse, IntelliJ IDEA и Netbeans, все в одном .gitignore, если члены вашей команды используют разные IDE. Со временем вы можете накапливать шаблон .gitignore, который игнорирует файлы проекта из всех IDE, используемых в вашей команде (-ях) для использования при создании нового репозитория

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

Редактировать: в настоящее время у меня есть эквивалентный .hgignore, тот же концепт, другой синтаксис, я преобразовал его в git в качестве примера такого файла .gitignore

/target/
/bin/
/build/
/.classpath
/.project
/.settings/
/.checkstyle
/atlassian-ide-plugin.xml
/.idea/
/*.iml
/*.ipr
/*.iws
*.orig
*.swp
*~
0 голосов
/ 17 ноября 2011

обычно .project и .settings / должны быть версионными и игнорироваться!

.classpath и target не должны быть версионными, но должны игнорироваться.

Это первая начальная загрузка на кассовой практике.

т.е.

  • Вы сказали всем, чтобы использовать четыре пробела в качестве табуляции, эта информация хранится в .settings / xxx
  • но вы не даете никаких ограничений на то, где они должны устанавливать свои tomcat / jdk (хранятся в .classpath)

ки

...