推动功能分支的起源是否良好实践?

时间:2012-04-06 20:17:20

标签: git design-patterns

我们最近从SVN切换到Git,在最佳实践等方面我们仍然处于学习过程中。我正在关注this guide作为管理我们的分支和发布的起点。

该文件表明,功能分支通常是开发人员本地的,这与我在别处阅读的内容非常相似。但是,一些工程师正在研究下一版本中不会出现的功能。这些功能在我们的发布周期之前是2到3次迭代。

我从工程师那里听到的担忧是他们担心在本地保留这么多代码。即使有他们的备份流程,它仍然是一个问题。我倾向于同意他们的担忧。

所以我的问题是,将更多即时版本的分支推送到原点是否标准?在某些时候,这些分支被合并到开发分支中,然后从原点删除。

作为一个例子,一位工程师正在研究一个相当大的履行件。我们不希望他的代码被推入开发分支(总是我们的下一个候选版本)。因此,我们为他创建了一个完整的分支,并将其推向了原点。我链接到的文件和我读过的其他文件都没有说清楚这是好事还是坏事。

如果有更好的做法,请告诉我或确认我的推测。

2 个答案:

答案 0 :(得分:4)

取决于。

如果某人正在处理某项功能并希望与其他开发者分享,那么这是完全合理的。但是,如果它是您正在单独工作的功能,如果您不需要共享它,为什么要将其推送到服务器?它最终将合并到其他分支,如master或在功能完成时开发。

共享需要共享的分支,在本地保留其他分支。如果没有必要,不要搞乱主要回购。此外,当通过git remote prune origin从主存储库中删除分支时,其他开发人员将不得不手动清理其引用的repos。

答案 1 :(得分:2)

对于小尺寸功能,可选。我建议每天推出中等大小的功能以备份。您的公司将不愿意听到您的开发人员在PC死亡时浪费了2周的时间。