.gitignore用于PhoneGap/Cordova 3.0项目-我应该提交什么?
我刚刚尝试创建一个新的phonegap 3.0项目。。。注意:我是phonegap的新手。 无论如何,我看到项目文件夹包含:.gitignore用于PhoneGap/Cordova 3.0项目-我应该提交什么?,git,cordova,cordova-3,Git,Cordova,Cordova 3,我刚刚尝试创建一个新的phonegap 3.0项目。。。注意:我是phonegap的新手。 无论如何,我看到项目文件夹包含: .cordova 合并 平台 插件 www 在尝试了phonegap本地运行的android之后,我在platforms/android中看到了很多二进制/生成的文件。 这让我想知道,我应该将这个文件夹结构的哪些部分添加到git存储库中。 通常,我认为提交二进制文件是非常糟糕的做法。 因此,我通常会在.gitignore中添加诸如bin/、obj/、*.o、*.pyc
.cordova
合并
平台
插件
www
phonegap本地运行的android
之后,我在platforms/android
中看到了很多二进制/生成的文件。
这让我想知道,我应该将这个文件夹结构的哪些部分添加到git存储库中。
通常,我认为提交二进制文件是非常糟糕的做法。
因此,我通常会在.gitignore
中添加诸如bin/
、obj/
、*.o
、*.pyc
等模式,以避免只会造成合并冲突的东西污染我的git存储库
当然,www
应该添加到git中,但是项目的其他部分呢。它们是源代码的产品,在多大程度上是项目配置
你是做什么的?假设我是新来的,所以我几乎不明白这里有什么意义…答案取决于您开发phongap应用程序的平台,以及您是否遵循标准目录结构 如果您的项目目录结构是标准的,那么您可以从这里开始,并根据需要修改它 根据经验法则,您必须排除所有生成的文件,如
bin/
和gen/
目录。
如果你正在开发Android版本的应用程序,你也应该排除构建文件,比如*.apk
也应排除android
子目录中生成的所有文件:
Android/bin/
Android/gen/
Android/assets/
所以我只是通过反复试验才发现这一点。如果您使用的是phonegap本地或远程构建,则可以省略
platforms
目录,因为它是动态生成的。所有其他文件夹,包括隐藏文件夹。cordova
都是必需的。展开@Jake Moshenko回答:
我喜欢省略平台
目录的想法。事实上,我能够排除插件
和平台
目录。.gitignore
的良好起点:
platforms/
plugins/
问题在于,必须先初始化回购协议的干净副本,然后才能实际使用它。创建初始化脚本可能有意义,例如:
#!/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支持的范围之外(即屏幕定向支持),定制特定于平台的应用程序代码/配置会变得更具挑战性
更新:
这包含一个更完整的脚本,用于处理不提交插件
和平台
目录的项目。它提供了一种机制,用于将图标和splashscreen图像从www复制到平台目录(对于iOS和Android),安装插件,以及处理应添加到版本控制中的平台特定文件
更新:
下面是上述bash脚本的另一个Grunt端口。(感谢@obie建议grunt)。我只想把我在这个问题上的经验和我们最终采用的方法留在这里 在我们的phonegap项目中,我们开始使用.gitignore文件提交除文件夹/平台之外的所有文件。我们这样认为,当开发人员克隆存储库时,剩下要做的唯一操作就是执行: phonegap/cordova添加平台 但事实并非如此。一旦平台被添加,我们试图编译,一个错误出现,应用程序没有安装在设备中 查看日志,我们发现这个错误是由插件引起的。因此,我们决定重新安装我们在项目中使用的所有插件,让应用程序正常运行 因此,我的建议是将所有内容保存在存储库中,不包括文件夹、平台和插件。创建一个包含项目中使用的插件列表的文件自述,并将其上载到存储库 这样,当开发人员克隆存储库时,他/她必须: 1.-添加平台:phonegap/cordova添加平台“平台” 2.-添加插件:phonegap/cordova插件添加“插件” 希望这有帮助
问候。这些东西很多都很旧,不适用于最新版本的Apache Cordova。我使用的是ApacheCordova5.1.1和这个。gitignore允许我使用自定义图标等进行自定义,同时阻止所有我们不需要为Android和IOS版本的东西。是的。使用了gradle,所以不要移除它
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
我不知道PhoneGap/Cordova的情况,但如果有疑问,请将所有内容都提交。当您知道有些东西是多余的时,您可以随时删除它:)我如何处理添加定制插件/本机代码或使用这种方法修改AndroidManifest.xml以适应插件开发?是否还有其他地方可以添加AndroidManifest.xml更改?请参阅链接的要点。它覆盖/添加
平台合并
目录中的任何文件。例如,您可以提交平台合并/android/AndroidManifest.xml
。这种方法适用于简单的项目,但在较大的项目中可能会使事情复杂化。感谢您的帮助:)我最终使用grunt做了同样的事情(使用)您可以通过在每个插件和平台文件夹中添加一个.gitkeep文件并将其放入.gitignore:platforms/*来避免创建插件和平台文件夹的步骤!平台/.gitkeep插件/*!插件/。gitkeep@aharris88这一点很好,但我相信我避免了这一点,以便更容易清理项目。i、 e.rm-rf平台插件
。开发什么平台无关紧要。这没有害处