大型团队如何在软件行业中使用分支?
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.rebase
和rebase.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 是一本好书。以上是关于大型团队如何在软件行业中使用分支?的主要内容,如果未能解决你的问题,请参考以下文章