PhoneGap / Cordova 3.0项目的.gitignore – 我应该提交什么?

我只是试图创build一个新的phonegap 3.0项目…注:我是手机新手。 无论如何,我看到项目文件夹包含:

  • .cordova
  • merges
  • platforms
  • plugins
  • www

并试图phonegap local run android我看到很多二进制/生成的platforms/android文件。 这让我想知道,这个文件夹结构的哪些部分应该添加到我的git仓库中。 通常情况下,我认为提交二进制文件是非常糟糕的做法。 因此,我通常会添加诸如bin/obj/*.o*.pyc等模式到.gitignore以避免污染我的git存储库,只会造成合并冲突。

当然, www应该被添加到git中,但是项目的其他部分呢。 源代码的产品延伸到什么程度,扩展到项目configuration?

你是做什么? 当然,我是新的,所以我几乎不明白什么是有道理的。

答案取决于你正在开发phongap应用程序的极限平台,以及是否遵循标准的目录结构。

如果你的项目目录结构是标准的,那么你可以从这个gitignore开始,并根据你的需要进行修改。

按照经验法则,您必须排除所有生成的文件,如bin/gen/目录。 如果您正在开发Android版本的应用程序,则应排除构build文件,如*.apk

android子目录中的所有生成的文件也应该被排除:

 Android/bin/ Android/gen/ Android/assets/ 

扩展@Jake Moshenko答案:

我喜欢省略platforms目录的想法。 事实上,我可以排除pluginsplatforms目录。 .gitignore一个好的起点:

 platforms/ plugins/ 

问题在于,在实际使用之前,必须初始化完整的repo副本。 创build一个init脚本可能是有意义的,例如:

 #!/bin/bash textReset=$(tput sgr0) textGreen=$(tput setaf 2) message_info () { echo "${textGreen}[my-app]${textReset} $1" } message_info "Creating necessary directories..." mkdir plugins mkdir platforms message_info "Adding platforms..." # If using cordova, change to: cordova platform add android phonegap build android phonegap build ios message_info "Adding plugins..." # If using cordova, change to: cordova plugin add phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git 

这种方法的一个警告是,它使定制平台特定的应用程序代码/configuration之外的phonegap / cordova(即屏幕方向支持)所支持的东西有点更具挑战性。

更新: Bash Gist

这个要点包含一个更完整的脚本,用于处理不提交pluginsplatforms目录的项目。 它提供了一个机制,用于将图标和splashscreen图像从www复制到平台目录(用于iOS和Android),安装插件以及处理应添加到版本控制中的平台特定文件。

更新: Grunt Gist

这是另一个要点 ,它是上述bash脚本的一个Grunt端口。 (感谢@obie提示grunt)。

所以我只是通过反复试验就知道了这一点。 如果您使用phonegap本地或远程构build,则可以省略platforms目录,因为它是在运行中生成的。 所有其他文件夹,包括隐藏文件夹.cordova都是必需的。

我只是想在这里留下我对这个问题的经验和我们最终遵循的方法。

在我们的phonegap项目中,我们开始使用.gitignore文件提交文件夹/平台的所有文件。 我们这样想,当开发者克隆版本库的时候,唯一需要做的动作就是执行:

phonegap / cordova添加平台

但事实并非如此。 一旦平台被添加,我们试图编译,出现错误,应用程序没有安装在设备中。

看日志,我们得到了一些点击,这个错误是由于插件。 所以我们决定重新安装我们在项目中使用的所有插件,并确保应用程序正常运行。

所以我的build议是保存在存储库中的所有内容less文件夹平台和插件。 使用项目中使用的插件列表创build并上传到存储库文件README。

这样,当开发人员克隆仓库时,他/她必须:

1.-添加平台:phonegap / cordova添加平台“平台”

2.-添加插件:phonegap / cordova插件添加“插件”

希望这可以帮助!

问候。

很多东西都是旧的,并不适用于最新版本的Apache Cordova。 我正在使用Apache Cordova 5.1.1,这个.gitignore允许我仍然自定义图标等,同时阻止我们不需要为Android和IOS版本的所有东西。 是的,使用格式,所以不要删除它!

 www/ .gradle/ build/ .tmp/ .temp/ coverage/ *.log node_modules/ bower_components/ 

虽然这是有点个人喜好,我去(这是一个唯一的Android项目)。 大部分删除,但保持自定义

 ToonPlane/platforms/android/* !ToonPlane/platforms/android/AndroidManifest.xml ToonPlane/plugins/* !ToonPlane/plugins/android.json !ToonPlane/plugins/fetch.json