Android Studio允许您配置项目以创建应用的调试版和发布版。它还允许您创建应用程序的“风味”,基本上编译不同的功能(试用版,完整版等)。
我怀疑如果使用Git完成同样的事情,是否有必要使用它。使用Git,您可以创建分支,有效地允许您创建“功能”版本。但是,我并不完全相信Git会允许您在调试和发布版本之间轻松切换。您可以创建“调试”和“释放”分支,只需在两者之间切换,但这些分支始终保持分开,直到您合并它们。有时,应用程序的调试版本和发布版本之间的唯一区别只是项目设置,可能包括应用程序中的密钥,或仅在本地测试时使用的资源。所以我的问题是,是否可以通过简单的方式使用Git来处理应用程序的调试和发布版本。
答案 0 :(得分:2)
Git分支系统非常强大。但是,在我看来,它不适合管理项目的Debug和Realease配置。
实际上,同一存储库的2个分支对应于项目的2个不同状态。您可以创建新分支以实现新功能,修复特定错误等,然后再合并。您还可以创建一个分支来管理项目的不同配置(调试/发布),但如果这样做,则必须将几乎所有提交复制到这两个分支中。 ' git cherry-pick'命令可以帮助您将提交从分支复制到另一个分支,但是您通常必须重置并修改提交以修复某些调试/发布特定的行。
我对Android应用程序的开发感到不满意,但我非常确定Git不是您有效管理调试和发布配置的最佳选择。
答案 1 :(得分:0)
考虑到你主要配置文件在分支之间而不是所有代码之间发生变化,我认为你可以使用Git的submodules,这可以让你将存储库与源代码“链接”到一个文件夹像你的主存储库的/ src(具有两个调试/发布分支的那个)。你必须使用两个存储库,但也许它更干净。此外,如果您必须经常更改两个版本的配置文件,这只是非常有用...
答案 2 :(得分:0)
使用正确的工具完成正确的任务。
如果您的产品有DEBUG和RELEASE配置,则应由构建环境处理,而不是由源代码管理处理。
例如,在Visual Studio中,您至少有两个构建配置:Debug和Release。这些配置包含在一个项目文件/解决方案中。在构建时,您决定要构建哪个配置:Debug或Release。
使用Makefiles也是如此:如果你想要一个DEBUG和一个RELEASE构建,你需要DEBUG
目标和RELEASE
目标包含在Makefile
中。为每个构建决定构建哪个目标,与版本控制,分支或其他任何内容无关。
这对于可移植性也很重要:如果您决定有一天从Git切换到另一个版本控制系统,您真的希望您的版本控制管理您的构建配置吗?这将增加完全不需要的额外努力。
让你的构建系统处理构建系统的东西,并让你的版本控制做版本控制。