Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.gitignore用于PhoneGap/Cordova 3.0项目-我应该提交什么?_Git_Cordova_Cordova 3 - Fatal编程技术网

.gitignore用于PhoneGap/Cordova 3.0项目-我应该提交什么?

.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

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

  • .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平台插件
。开发什么平台无关紧要。这没有害处