【发布时间】:2020-05-19 19:11:31
【问题描述】:
我们最近从 Team Foundation 版本控制切换到 git。我发现我们的开发团队倾向于从本地 master 创建一个本地分支,将其称为 local-dev,然后永远使用该分支。我们正在使用拉取请求流程,因此他们将本地开发者推送到服务器上并在主服务器上执行拉取请求。
当拉取请求完成时,他们删除了 server-dev 分支,但保留了他们的 local-dev 分支。他们只是将最新的拉到他们的本地 master 中,然后将本地 master 合并到 local-dev 中。然后重复这个循环。
这样做可以吗?在我的脑海中,我看到由于他们的 local-dev 从未被重新定位,因此每次他们执行拉取请求并强制服务器处理该合并时,他们都会不断地将自第 1 天以来的所有历史记录推送到服务器上。这似乎工作正常。
这是一颗定时炸弹吗?这是完全可以接受的,我什么都不担心?服务器在做什么来处理这个合并?
【问题讨论】:
-
In my head I see that since their local-dev is never being rebased这是您的假设不成立的地方,一旦拉取请求完成,他们将被要求从源站获取,否则他们将与服务器分道扬镳。 -
他们从 master 合并到他们的 local-dev。但这只是在他们的 local-dev 分支内创建一个新的 commmit-merge 节点,这是我的理解。变基至少会允许历史记录从 master 上的最后一个已知合并开始,但由于他们进行合并,分支历史记录仍保留在第 1 天。不是吗?
-
哦,那太脏了。如果它有效,则没有真正的问题,但它是错误的。您通常应该为每个新提交到 master 创建新的功能分支。尽可能多地提交工作,如果可以的话,在此过程中进行 rebase。就在 CR 之前,压缩到单个提交,该单个提交将被合并到该功能的 master 中。
标签: git merge rebase pull-request