如果使用Maven,是否应忽略VCS中特定于Eclipse的文件?
我知道为什么不将Eclipse / IDE特定的文件提交到像Git这样的VCS(我实际上正在使用它)。 这是我使用Maven并让它为您生成这些文件并且不受版本控制的原因之一。
但是我想知道,如果这些文件应该在.gitignore中被忽略,它本身受VCS / Git的控制:
.classpath .project .settings/ target/
这个可以吗?
什么是优点和缺点,因为.gitignore文件本身变成了特定于IDE的文件,因为忽略的文件是IDE特有的? 任何最佳做法?
对于我一直在研究的团队,一般规则是你不要检查由Maven生成或获得的任何东西。 由于pom.xml包含创建.project,.classpath和.settings文件所需的所有内容,因此我们不会检查它们。
我的.gitignore总是包含Maven项目的.classpath,.settings,.project和target。
编辑:正如我在下面的评论中所提到的,这是另一个建议:如果你真的想避免在.gitignore中使用Maven或IDE特定条目,请尝试编写你的.gitignore,这样你只列出你想要签入的内容 。
* !stuffIDoWantToCheckIn
我从以下文章中获取了我的信息: https : //help.github.com/articles/ignoring-files
这表明您可以创建一个包含.project等的全局gitignore文件(在〜/ .gitignore_global下建议)。由于该文件在repo之外,它不会显示…
使用以下命令将其注册为全局忽略文件:
git config --global core.excludesfile ~/.gitignore_global
或者,您可以在.git / info / exlude文件中创建per-repo未跟踪的gitignore条目
我同意不将IDE文件置于版本控制之下,这偶尔会引起各种各样的痛苦,而且正如你提到的那样使用maven呈现这是不必要的,因为任何开发人员都可以简单地从POM导入项目并继续
如果这些文件没有放入.gitignore,则可以很容易地将其检入
此外,我没有找到列出它们的.gitignore使它特定于IDE,你可以列出eclipse,IntelliJ IDEA和Netbeans的项目文件,如果你的团队成员使用不同的IDE混合使用.gitignore。 随着时间的推移,您可能会累积一个模板.gitignore,它会忽略您团队中使用的所有IDE中的项目文件,以便在您创建新存储库时使用
如果你完全反对将这些放在项目.gitignore中,你可以将它们放在用户.gitignore中,但在我看来这有点宽松,因为它取决于正确配置的各个开发机器,还需要保持这些与任何新增内容保持同步
编辑:我目前有一个等效的.hgignore,相同的概念不同的语法,我把它转换为git作为这样的.gitignore文件的一个例子
/target/ /bin/ /build/ /.classpath /.project /.settings/ /.checkstyle /atlassian-ide-plugin.xml /.idea/ /*.iml /*.ipr /*.iws *.orig *.swp *~
通常.project和.settings /应该被版本化并忽略!
.classpath和target不应该被版本化而是被忽略。
这是结帐练习的第一次初始启动。
即
- 您告诉everone使用四个空格作为选项卡,此信息存储在.settings / xxx下
- 但你不必限制他们必须安装他们的tomcat / jdk(存储在.classpath下)
好?