一个NetBeans Java项目的.gitignore文件应该包含什么?

96

在NetBeans中的Java项目中,.gitignore文件的内容应该是什么?


1
取决于您正在开发的操作系统,大多数Mac开发人员都会包括.DS_Store,因为它是由OS X在大多数目录中生成的,并且对您的应用程序来说是多余的。 - Greg K
我正在Windows上进行开发。在问题中,我指的是一些特定的文件,比如.DS_Store。例如,我应该在.gitignore中包含build文件夹吗? - thuaso
3
基本上,这是一个与https://dev59.com/jnM_5IYBdhLWcg3wslbs相同的副本。 - David J.
3个回答

84
# NetBeans specific #
nbproject/private/
build/
nbbuild/
dist/
nbdist/
nbactions.xml
nb-configuration.xml

# Class Files #
*.class

# Package Files #
*.jar
*.war
*.ear

1
请注意,这与 GitHub 上托管的 NetBeans .gitignore 非常接近:https://github.com/github/gitignore/blob/master/Global/NetBeans.gitignore - Steven
1
GitHub的NetBeans .gitignore允许在repo中包含.jar文件。我怀疑这不是最佳实践,但它确实让我的生活更轻松。 - Neal Ehardt
就像 GitHub 的 .gitignore 适用于 NetBeans 一样,它并不完全正确。请参见 https://dev59.com/22Af5IYBdhLWcg3w7mQ_。 - Garret Wilson
3
请在忽略目录的名称前添加斜杠,例如:使用"/build/"代替"build/"。这样做的目的是防止在目录结构中某个地方出现名为"build"的目录被误认为是需要忽略的目录,而实际上并非如此。请注意,不要改变原意。 - Duncan

66

有很多文件可能不需要提交到Git,因为它们是构建的、由NB生成的或包含特定于环境的信息。

如果您创建一个使用Ant作为构建机制的项目,通常会得到一个目录树,看起来像这样...

project-root-directory/
+ nbproject/
  build-impl.xml
  + private/
  + project.properties
  + project.xml
+ src/
+ test/
+ build.xml

在进行构建之后,会有几个额外的目录出现。

project-root-directory/
+ build/
+ dist/
+ nbproject/
  build-impl.xml
  + private/
  + project.properties
  + project.xml
+ src/
+ test/
+ build.xml

你应该将build、dist和nbproject/private目录(及其子目录)放入.gitignore文件中。

如果你想非常彻底地排除文件,可以考虑排除nbproject中的所有文件,除了project.properties和project.xml。nbproject目录中的其他文件会在打开项目时由NetBeans重新生成。


4
一年前曾经有类似的问题被问到过(https://dev59.com/jnM_5IYBdhLWcg3wslbs#1267580),并且最好的答案指向了一个NetBeans知识库文章(http://netbeans.org/kb/docs/java/import-eclipse.html#versioning),该文章给出了与你所说的类似的答案。 - David J.
2
@DavidJames -- 链接已损坏 - Jason S
@JasonS 我的第一个链接仍然有效;我无法编辑第二个链接。更多上下文请参见有没有办法修复评论中的损坏链接?版主可以编辑评论吗? - David J.
这是一个来自互联网档案馆的NetBeans知识库文章链接:https://web.archive.org/web/20121018213758/http://netbeans.org/kb/docs/java/import-eclipse.html。相关章节似乎是“版本控制注意事项”。 - Rafael Atías

1

在你的.gitignore中,不应该有任何NetBeans特定的文件。 .gitignore 文件是项目特定的,但在开发人员之间共享,也就是说,里面只应该包含所有开发人员(包括使用OSX、Linux而非Windows以及Eclipse、IntelliJ或Notepad作为编辑器)都需要的东西,并且是与项目特定相关的。

如果有一些文件基于你所在环境的特定需求需要忽略(例如Windows下的Thumbs.dbdesktop文件或者NeBeans的nbproject目录),您应该将它们添加到全局忽略列表中,而不是项目特定的.gitignore文件-这样做只是因为您不需要在每个项目中单独添加它们。

如果要忽略的文件既与您当前环境相关,又与当前项目相关,则将它们放入该存储库的.git/info/exclude中。


2
为什么要使用.git / info / exclude而不是项目的.gitignore?如果将其放在.gitignore中会有什么好处/坏处? - Andrew Burns
@Andrew Burns .gitignore和.git/info/exclude的区别在于前者会有版本控制(git跟踪更改),而后者则不会。我使用.gitignore,因为有时我会更改被忽略的内容,并希望将其与版本相关联。 我喜欢这里的样本.gitignore文件 - Ivin
2
我不同意;如果Eclipse用户提交适当的(例如非自动生成的)项目文件,或者反过来,这并不会对IntelliJ用户造成伤害。实际上,在项目团队中的某个成员需要使用另一个IDE时,这样做可能会有所帮助。(这可能发生在故障排除或配对编程期间。) - David J.
1
nb-configuration.xml不应该被忽略。它旨在供开发人员共享。 - DejanLekic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接