我们通常将Eclipse用于特定的Java项目,但最近我将该项目导入到NetBeans中以使用其对话框构建功能。
因为我可能会回到这个问题上,所以我想将NetBeans项目文件存储到版本控制中。但是,我不想提交“我的”文件而不是“项目”文件,即,我自己的设置会与其他用户的设置冲突的文件。
NetBeans在顶级项目区域中创建了以下结构:
nbbuild
nb-build.xml
nbproject
<various files>
configs
private
很明显nbbuild
是构建输出,所以它不会进入。nb-build.xml
文件看起来很有可能,就像大多数nbproject
一样。然而,nbproject/private
表明它是“我的”。偷看“配置”,我不清楚它是我的还是项目的...
有人有什么建议吗?
6条答案
按热度按时间noj0wjuj1#
有关项目文件与版本控制得NetBeans知识库文章讨论了NetBeans项目文件,并提供了有关哪些文件是特定于项目得(即可以通过版本控制共享),哪些文件是特定于用户得粗略建议.
下面是有关版本控制的部分:
如果项目已从版本控制系统 checkout ,则不应将
build
(或nbbuild
)、dist
(或nbdist
)和nbproject/private
文件夹签入该版本控制系统。如果项目位于CVS,Subversion或Mercurial版本控制系统下,则在导入项目时,将为这些目录创建或更新相应得“忽略”文件.
尽管应忽略
nbproject/private
,但应将nbproject
签入到版本控制系统中.nbproject
包含项目元数据,通过该元数据,其他用户可以在NetBeans中打开该项目,而不必先导入该项目.jhiyze9q2#
在某种程度上,托马斯和Petercardona都是正确的。NetBeans建议您只导入源代码和/或文档。哦,还有 nbproject 文件夹,但不要导入 *nbproject/private**文件夹。
从NetBeans Knowledge Base article on importing Eclipse projects:
版本控制注意事项
如果项目已从版本控制系统 checkout ,则build(或nbbuild)、dist(或nbdist)和 nbproject/private 文件夹不应签入该版本控制系统。
如果项目位于CVS,Subversion或Mercurial版本控制系统下,则在导入项目时,将为这些目录创建或更新相应得“忽略”文件.
尽管应忽略 nbproject/private,但应将 nbproject 签入到版本控制系统中. nbproject 包含项目元数据,通过该元数据,其他用户可以在NetBeans中打开项目,而不必先导入项目.
vaj7vani3#
没有。
只有源文件、构建脚本和非自动生成的文档(例如JavaDoc和Doxygen等工具的输出)才应该被签入到仓库中,而项目文件、二进制文件和生成的文档则不应该被签入。
原因有两个。首先,您不希望用自己的项目设置覆盖其他开发人员的项目设置。其次,其他开发人员可能没有使用与您相同的IDE(甚至根本没有IDE),因此不要给他们提供超出他们构建(项目或其相关文档)或运行项目所需的任何设置。
rta7y2nd4#
使用Netbeans 6.8进行测试时,只有
project.xml
、configurations.xml
和主makefile('nbproject'
目录的父目录中的可自定义文件,带有前置/后置目标定义)必须通过存储库分发。所有其他文件将自动(重新)由Netbeans生成(Makefile-impl.ml
,Makefile-variables.ml
,所有Makefile-$CONF
,Package-$CONF.bash
).显然,“私有”目录也应该被忽略.2g32fytz5#
您还可以检查
https://github.com/github/gitignore/blob/master/Global/NetBeans.gitignore
此开放源代码项目包含
一个有用的
.gitignore
模板集合raogr8fs6#
Toptal提供了一个非常有用的工具,可以帮助开发人员了解.gitignore文件中应该包含哪些内容。
https://www.toptal.com/developers/gitignore
对于netbeans,只需搜索Netbeans,它应返回类似于以下内容的模板
**/nbproject/私有/
**/nbproject/生成文件-.mk
**/nbproject/封装-.bash组建/
nbbuild/
距离/
nbdist/显示
. nb-分级/
将其复制并粘贴到项目目录中的.ignore文件中应该可以解决您的问题。