2011-04-29 28 views
1

在之前的工作中,我发现通过让每个开发人员在他/她自己的分支上工作,我更容易管理并保持稳定的预发布分支(或主分支,取决于设置)。我们只有一个生产实例,因此不需要支持相同应用程序的多个版本。git的“local-repository”概念与“开发者分支”有何不同?

这个“预发行”分支是这样命名的,因为还有另一个分支(主分支),我们将从那里分发我们的分期和发行版本。分支机构的设置使得只有来自预发布分支的代码可以合并到发布分支中。这些合并是我们的代码审查检查点。 CI构建也是由这个预发布分支完成的,每个开发人员都可以从“预发布”到他们自己的分支进行合并,然后在该工作组的开发完成时将其迁移到复杂的合并问题。

如果开发人员需要将某个特定功能配对并一起工作,那么除了他们自己的分支权限之外,他们无法与其他人一起工作。这对于管理分布式团队很有效,每个团队中的个人都在独立/多个功能上工作。

在频繁(每周1-2次)的30分钟状态更新会议的帮助下,我们作为一个团队将决定进入QA的内容以及哪些内容不适用于特定的QA版本。

这个系统很有用,但是在搜索这个主题时,我发现很多开发者分支的不满。似乎git的本地存储库功能有很多热情。但是,它们似乎是解决同样问题的不同方式。不考虑本地存储库解决的跨网络问题,例如检查延迟等。

回答

3

有三个主要区别:

  1. 本地资源库意味着这一点:这是您的本地系统,如果你没有发现自己被困在一个荒岛上没有互联网连接,你还是会能够提交您的更改。 Git最好的一点是你不必连接到你的版本库就可以利用版本控制系统。开发人员有时无法访问主存储库进行远程工作,当您拥有像SubversionPerforce或其他类型的集中式存储库版本控制系统时,通常可能会造成混乱。用GitBitKeeper,你可以很容易地离线工作。

  2. 开发分支情况下,你通常是从整合分支跳转到您的开发分支与合并回整合分支。在Git中,您不会合并,但发送补丁程序,您可以将修改发送到主存储库,但发送给其他开发人员,而无需先将修补程序发送到主存储库。这允许开发者一起工作而无需触摸主存储库

  3. 开发/集成分公司设置中,开发分支是,这意味着其他人可以看到它的存储库。在Git中,开发人员的更改在开发人员进行更改之前不可用。

+0

感谢您的详细解释。很显然,我了解DVCS中的分布式概念有很多。 – 2011-04-29 04:51:42

0

如果它对你有用,太好了。我想你会发现DVCS可以更好地工作,因为他们可以支持你现在正在做的所有事情。

本地存储库比开发人员分支的一个优点是,您可以在本地拥有尽可能多的分支。你可以启动一个快速分支来测试你感兴趣的东西。您可以启动一个分支来测试迁移到您喜爱的该库的最新版本。所有这些都不需要用可能无法看到日光的东西“污染”中央服务器。

+0

树枝上的好点,虽然看起来可以通过“撤消挂起的更改”来完成。 – 2011-04-29 04:53:33

+0

当然,如果更改不值得保存。但如果它们是?没有理由失去他们,如果你有一个VCS足够聪明,让你保持他们。我想你可以创建一个补丁并稍后应用,或者在服务器上创建一个分支,但是本地分支可以更好地工作。 – dahlbyk 2011-04-29 05:00:55