2014-11-24 71 views
0

Android Studio允许您配置项目以创建应用程序的调试版本和发行版本。它也允许你创建一个应用程序的“风味”,它基本上是在不同的功能(试用版,完整版等)中进行编译。Git可用于管理应用程序的调试版本和发行版本

我想问一下,如果使用Git来完成同样的事情,是否需要使用它。使用Git,你可以创建分支,有效地让你创建“功能”版本。但是,我并不完全相信Git会允许您轻松地在调试版和发行版之间切换。您可以创建一个“调试”和“发布”分支,并在两者之间切换,但这些分支始终保持分开状态,直到合并为止。有时,应用程序的调试版本和发行版本之间的唯一区别仅仅是可能在您的应用程序中包含键的项目设置,或仅在本地测试时使用的资源。所以我的问题是Git是否可以用一种简单的方式来处理应用程序的调试和发布版本。

+0

如果您使用rebase,则可以在分支上重播您在主分支或功能分支的更改之上的更改。然后,您可以轻松地在一个分支上保留特定的“调试”更改,而在通用分支上保留其他所有更改 – KeAn 2014-11-24 14:41:35

回答

1

Git分支系统非常强大。但是,我认为它不适合管理项目的调试和重新发布配置。

实际上,同一存储库的2个分支对应于您的项目的2个不同状态。您可以创建一个新分支来实现新功能,修复特定错误等,并在稍后进行合并。你也可以创建一个分支来管理你的项目的不同配置(调试/发布),但是如果你这样做了,你将不得不将几乎所有的提交都复制到这两个分支中。 'git cherry-pick'命令可以帮助你将一个提交从一个分支复制到另一个分支,但是你经常需要重置和修改一个提交以修复某些调试/发布特定的行。

我对Android应用程序的开发感到不舒服,但我非常确定Git不是您对调试和发布配置进行高效管理的最佳选择。

+0

现在使用Git一段时间了,我认为你是对的。这似乎很奇怪,但Git没有一些机制可以让你在调试和发布版本之间轻松切换。就我个人而言,我认为Git应该包含一个支持此功能的功能,因为它属于版本控制。 – AndroidDev 2014-11-24 15:39:05

+0

@AndroidDev:为什么版本控制系统会提供对构建配置的支持?每个严肃的构建环境都会处理独立于版本控制的构建配置 – eckes 2014-11-24 15:54:57

+0

@eckes因为构建配置是版本控制固有的。 – AndroidDev 2014-11-24 16:06:28

0

考虑到你主要是配置文件在分支之间而不是所有的代码,我认为你可以使用Git的submodules,它可以让你将源代码与源代码“链接”到/ src的主存储库(具有两个调试/发布分支​​的存储库)。你将不得不使用两个存储库,但也许它更清洁。另外,如果您必须频繁更改两个版本的配置文件,这才真正有用......

0

使用正确的工具进行正确的任务。

如果您的产品具有DEBUG和RELEASE配置,则应该由您的构建环境来处理,而不是由您的源代码管理。

例如,在Visual Studio中,您至少有两种构建配置:调试和发布。这些配置包含在ONE项目文件/解决方案中。构建时,您决定要构建哪个配置:调试或发布。

同样会去与工作的Makefile:如果你想有一个调试和发布版本,你需要有一个DEBUG目标,并包含在你的Makefile一个RELEASE目标。每个构建决定构建哪个目标,并且与版本控制,分支等无关。

这对于可移植性也很重要:如果您决定从Git切换到另一个版本控制系统,您是否确实希望通过版本控制管理您的构建配置?这将增加完全不需要的额外努力。

让你的构建系统处理构建系统的东西,让你的版本控制做版本的东西。

+0

对不起,但使用Visual Studio构建调试/发布是构建过程的过时方式。这个模型在Git出现之前就存在了。和Make一样。至少就目前的开发模式而言,构建配置实际上是版本控制的一部分。 – AndroidDev 2014-11-24 16:09:52

+1

@AndroidDev:你有没有关于你最先进的“构建东西”的文档?我会很好奇。 – eckes 2014-11-24 16:16:18

相关问题