我刚刚尝试创建一个新的phonegap 3.0项目...注意:我是phonegap的新手。 无论如何,我看到项目文件夹包含:
.cordova
merges
platforms
plugins
www
尝试phonegap local run android
后,我在platforms/android
中看到了很多二进制/生成的文件。
这让我想知道,我应该将这个文件夹结构的哪些部分添加到我的git存储库中。
通常,我认为提交二进制文件是非常糟糕的做法。
因此,我通常会将bin/
,obj/
,*.o
,*.pyc
等模式添加到.gitignore
,以避免使用仅提供服务的内容来污染我的git存储库创建合并冲突。
当然,应该将www
添加到git中,但是项目的其他部分呢?它们的源代码产品到底有多大,它们的项目配置有多大?
你做什么的?当然我很新,所以我几乎不明白这里有什么意义......
答案 0 :(得分:49)
扩展@Jake Moshenko回答:
我喜欢省略platforms
目录的想法。实际上,我可以排除plugins
和platforms
目录。 .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所支持的范围之外(即屏幕方向支持),自定义平台特定的应用程序代码/配置会更具挑战性。
此gist包含一个更完整的脚本,用于处理不提交plugins
和platforms
目录的项目。它提供了一种机制,用于将图标和启动画面图像从www复制到平台目录(适用于iOS和Android),安装插件以及处理应添加到版本控制的平台特定文件。
这是另一个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