.gitignore for PhoneGap / Cordova 3.0项目 - 我该怎么做?

时间:2013-07-28 18:06:36

标签: git cordova cordova-3

我刚刚尝试创建一个新的phonegap 3.0项目...注意:我是phonegap的新手。 无论如何,我看到项目文件夹包含:

  • .cordova
  • merges
  • platforms
  • plugins
  • www

尝试phonegap local run android后,我在platforms/android中看到了很多二进制/生成的文件。 这让我想知道,我应该将这个文件夹结构的哪些部分添加到我的git存储库中。 通常,我认为提交二进制文件是非常糟糕的做法。 因此,我通常会将bin/obj/*.o*.pyc等模式添加到.gitignore,以避免使用仅提供服务的内容来污染我的git存储库创建合并冲突。

当然,应该将www添加到git中,但是项目的其他部分呢?它们的源代码产品到底有多大,它们的项目配置有多大?

你做什么的?当然我很新,所以我几乎不明白这里有什么意义......

6 个答案:

答案 0 :(得分:49)

扩展@Jake Moshenko回答:

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

platforms/
plugins/

这个问题是必须初始化repo的干净副本才能真正使用它。创建一个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

这种方法的一个警告是,在phonegap / cordova所支持的范围之外(即屏幕方向支持),自定义平台特定的应用程序代码/配置会更具挑战性。

更新:Bash Gist

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

更新:Grunt Gist

这是另一个gist,它是上面提到的bash脚本的Grunt端口。 (感谢@obie提出的咕噜声)。

答案 1 :(得分:43)

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

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

根据经验,您必须排除所有生成的文件,例如bin/gen/目录。 如果您正在开发应用的Android版本,则应将构建文件排除在*.apk之外。

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

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

答案 2 :(得分:7)

所以我只是通过反复试验来解决这个问题。如果您正在使用phonegap本地或远程构建,则可以省略platforms目录,因为它是动态生成的。所有其他文件夹,包括隐藏文件夹.cordova都是必需的。

答案 3 :(得分:4)

我只想留下我对这个问题以及我们最终遵循的方法的经验。

在我们的phonegap项目中,我们开始使用.gitignore文件提交所有文件,而不是文件夹/平台。我们这样想,当开发人员克隆存储库时,剩下要做的唯一操作就是执行:

phonegap / cordova添加平台

但事实并非如此。一旦添加了平台并且我们尝试编译,就会出现错误并且应用程序未安装在设备中。

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

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

这样,当开发人员克隆存储库时,他/她将不得不:

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

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

希望这有帮助!

问候。

答案 4 :(得分:1)

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

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

答案 5 :(得分:0)

虽然它有点个人偏好,但我选择了这个(仅用于Android项目)。删除最多,但保留自定义

ToonPlane/platforms/android/*
!ToonPlane/platforms/android/AndroidManifest.xml
ToonPlane/plugins/*
!ToonPlane/plugins/android.json
!ToonPlane/plugins/fetch.json
相关问题