我知道为什么不将Eclipse / IDE特定的文件提交到像Git这样的VCS(我实际上正在使用它)。这是我使用Maven并让它为您生成这些文件的原因之一,并且不让它们受版本控制。
但我想知道,如果这些文件应该在.gitignore中被忽略,它本身受VCS / Git的控制:
.classpath
.project
.settings/
target/
这可以吗?
由于.gitignore文件本身变成了特定于IDE的文件有什么优点和缺点,因为忽略的文件是IDE特有的?任何最佳实践?
答案 0 :(得分:11)
对于我所做过的团队,一般规则是你不要检查由Maven生成或获得的任何东西。由于pom.xml包含创建.project,.classpath和.settings文件所需的所有内容,因此我们不会检查它们。
我的.gitignore总是包含.classpath,.settings,.project和Maven项目的目标。
编辑:正如我在下面的评论中所提到的,这是另一个建议:如果你真的想避免在你的.gitignore中使用Maven或IDE特定条目,try writing your .gitignore so you list only what you DO want checked in。
*
!stuffIDoWantToCheckIn
答案 1 :(得分:2)
我从以下文章中获取了我的信息:https://help.github.com/articles/ignoring-files
这表明您可以创建一个包含.project等的全局gitignore文件(在〜/ .gitignore_global下建议)。由于该文件在repo之外,它不会显示...
使用以下命令将其注册为全局忽略文件:
git config --global core.excludesfile ~/.gitignore_global
或者,您可以在.git / info / exlude文件中创建每个repo未跟踪的gitignore条目
答案 2 :(得分:1)
我同意不将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
*~
答案 3 :(得分:0)
通常.project和.settings /应该被版本化并被忽略!
.classpath和target不应该被版本化而是被忽略。
这是结账实践的第一次初始启动。
即
OK?