105

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

  • .cordova
  • merges
  • platforms
  • plugins
  • www

经过尝试,phonegap local run android我在platforms/android. 这让我想知道,我应该将这个文件夹结构的哪些部分添加到我的 git 存储库中。通常,我认为提交二进制文件是非常糟糕的做法。因此,我通常会添加诸如bin/obj/、等模式*.o,以避免使用仅用于创建合并冲突的东西污染我的 git 存储库。*.pyc.gitignore

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

你做什么工作?当然我是新手,所以我几乎不明白这里有什么意义......

4

6 回答 6

50

扩展@Jake Moshenko 答案:

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

platforms/
plugins/

这样做的问题是,必须先初始化 repo 的干净副本,然后才能实际使用它。创建一个初始化脚本可能是有意义的,例如:

#!/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 支持的范围之外(即屏幕方向支持)自定义平台特定的应用程序代码/配置变得更具挑战性。

更新:重击要点

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

更新:咕噜要点

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

于 2013-10-02T20:54:50.037 回答
43

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

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

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

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

Android/bin/
Android/gen/
Android/assets/
于 2013-07-29T07:23:41.217 回答
7

所以我只是通过反复试验才弄清楚这一点。platforms如果您使用 phonegap 本地或远程构建,则可以省略该目录,因为它是动态生成的。所有其他文件夹,包括隐藏文件夹.cordova都是必需的。

于 2013-08-21T03:56:15.510 回答
4

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

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

phonegap/cordova 添加平台

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

查看日志,我们发现此错误是由插件引起的。所以我们决定重新安装我们在项目中使用的所有插件,然后应用程序可以正常运行。

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

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

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

2.- 添加插件:phonegap/cordova plugin add "plugin"

希望这可以帮助!

问候。

于 2015-01-14T10:14:42.273 回答
1

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

www/
.gradle/
build/
.tmp/
.temp/
coverage/
*.log
node_modules/
bower_components/
于 2015-07-21T03:03:00.190 回答
0

虽然这有点个人喜好,但我还是选择了这个(仅适用于 android 项目)。删除大部分,但保留自定义内容

ToonPlane/platforms/android/*
!ToonPlane/platforms/android/AndroidManifest.xml
ToonPlane/plugins/*
!ToonPlane/plugins/android.json
!ToonPlane/plugins/fetch.json
于 2016-07-08T04:13:23.423 回答