大型团队如何在软件行业中使用分支?

Posted

技术标签:

【中文标题】大型团队如何在软件行业中使用分支?【英文标题】:How are branches used in software industry for a big team size? 【发布时间】:2019-05-18 11:53:50 【问题描述】:

我正在使用 sourcetree 作为 bitbucket 中的代码存储库。 我想了解其他团队如何使用 sourcetree 和 repo 分支。

是每个开发人员完成一个分支还是每个分支多个开发人员完成,如果是这样,如果多个人从他们的本地仓库推送到远程仓库,是否会发生冲突?

我们是一个小团队,所以我们创建了单独的分支,每个人都推送到自己的分支中,最后合并到master中。 我认为上述过程是错误的,因为当团队规模扩大时,不可能创建单独的分支。

【问题讨论】:

【参考方案1】:

分支通常是围绕特征组织的,而不是个人:如果一个人要离开怎么办:你应该如何处理他或她的分支? 与代表实现目标的功能分支相反。

几个人可以协作到一个公共分支,将他们的本地提交重新定位在更新后的提取功能分支之上,然后推送他们的提交:任何冲突都首先在本地解决(在重新定位期间)。

现在 X 也在分支 A 上工作,现在他得到了 Y 对 A 的拉取请求。

X 没有收到拉取请求。 X 所做的只是一个简单的git pull。如果 git 是properly configured(意味着pull.rebaserebase.autostash 是全局设置的),那么git pull 会触发分支A 上的任何本地提交的rebase,在获取的更新origin/A 之上。

那么假设没有冲突,X 现在应该怎么做?

一个git push,将他/她自己的提交推送到远程仓库,在分支A

X 完成他的工作后,Y 是否收到任何关于 rebase 的拉取请求? 不会。Y 会在同一个分支中使用他/她自己的时间。

总体思路是:在一个公共分支上协同工作时,首先拉取(并在本地解决任何冲突),然后在准备好时推送。

【讨论】:

所以,假设我们有 2 个人 X 和 Y 在分支 A 上工作。假设 Y 将一些更改提交到本地仓库,然后提交到远程仓库。现在 X 也在分支 A 上工作,现在他得到了 Y 对 A 的拉取请求。那么假设没有冲突,X 现在应该做什么?在 X 完成他的工作之后,Y 是否收到任何关于 rebase 的拉取请求? @NitishPatra 我已经编辑了我的答案以解决您的评论。 嘿,伙计,非常感谢。肯定是有帮助的。另外,如果您知道上述任何教程,请务必提及。 @NitishPatra atlassian.com/git/tutorials/merging-vs-rebasing 是一本好书。

以上是关于大型团队如何在软件行业中使用分支?的主要内容,如果未能解决你的问题,请参考以下文章

《软件工程课程总结》

跨过2019 - 如何立一个新的Flag?且看行业解读

saas的发展趋势?

干货:软件开发行业的产品经理该怎么为团队找项目

行业资讯网络自动化运维体系

敏捷管理如何推广和应用敏捷开发管理模式