首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当多个开发人员在同一个分支上工作时,是否建议进行git重基?

当多个开发人员在同一个分支上工作时,是否建议进行git重基?
EN

Stack Overflow用户
提问于 2014-06-24 12:56:01
回答 2查看 4.3K关注 0票数 3

peril

建议在存储库是公共的情况下不应该进行重基。

最近在git merge vs rebasing上发表的一篇文章

建议不应在开发人员之间共享的分支上进行重基。

我理解,因为开发人员可能首先合并代码,然后决定重新定位代码,因此其他开发人员最终可能会创建多个重复提交,正如在rebase的危险中所解释的那样。

如果所有的开发人员都有一个共同的协议,即每个人都要重新建立代码的基础,而不是进行合并,那该怎么办?这项建议是否仍然适用?

P.S

所有这些答案都让我困惑。我想我会重新讨论这个问题。

假设有两个开发人员在两台不同的计算机上工作。有一个中央存储库。这两个开发人员克隆并开始工作。

开发人员1:

  • 从本地/主创建分支。比方说是本地的。
  • 把它推到了远程

开发人员2:

  • 从遥控器中取出更改
  • 结帐到本地/iss123
  • 在本地/iss123中提交了一些
  • 将更改推送到remote/iss123

开发人员1:

  • 有一些本地提交
  • 他想用原产/ the 123重新定位这个分支。
  • git重基原点/git 123
  • 然后他把自己的承诺推到了原点上

开发人员2:

  • 有一些本地提交
  • 他将用原产/ He 123重新建立分支机构。
  • git重基原点/git 123

诸若此类。开发人员1&2总是将其分支与原点/分支重新定位,然后将它们的更改推送到原始/分支。

在功能稳定之后,最后

开发人员1:

  • 向本地/主退房
  • 从原始/母版中提取最新代码
  • 检查其他开发人员在本地/主程序中是否有提交。
  • 将结帐到本地/iss123
  • 如果有任何新的提交,将使用本地/主/重基本地/ if 123。
  • 然后,如果已完成重基,则将分支本地/iss123推送到remote/iss123。
  • 然后结帐到本地/主
  • 将本地/123合并为本地/主
  • 然后把本地/主人推到原点/主人

开发人员2:

  • 现在将从原版/母版和原产地/ to 123分别提取最新的更改为本地/母版和本地/to 123。

后来,这一周期又继续下去。

这是正确的吗?当两个开发人员在同一个分支上工作,并且总是想要重基而不是合并时,这是正确的方式吗?

EN

回答 2

Stack Overflow用户

发布于 2014-06-25 04:53:29

让我们假设没有人做交互的重基,改变历史,而只是做一个git fetch和一个git rebase origin/branch。在这种情况下,如果没有其他人推动他们最近的重新基地,你就可以做一个推杆,否则你就会有冲突,不得不再次重新基地。重要的是,每个人都很努力地重新建立基础,而且从来不做push -f,因为这会给下游的每个人带来问题。

问题是你为什么要这么做。如果目标仅仅是避免合并提交,您最好使用这样的工作流:

  1. 分支脱离公共分支
  2. 你工作吗?
  3. 将您的个人分支与公共分支重新定位(以防其他人做出某事)。
  4. 把你的树枝推到普通的树枝上
  5. 如果推送因冲突而失败,请进入第三步。
  6. 为下一个工作项目重新开始。

这样,每个人都会以线性提交的方式在公共分支上提交他们的工作。

备注:留下了我最初的回复,但是根据更新的问题添加了更多的信息。

基本上,我的建议是,从事local/iss123工作的两位开发人员在通过git pull来回往返时,不断地合并对方的更改。一旦iss123稳定下来,其中一个开发人员就会将其重基到主服务器上,即

代码语言:javascript
运行
复制
git checkout iss123
git checkout -b rebase_iss123
git rebase -i master
// select first as edit (so you can change its commit message)
// and select the rest as fixup
git checkout master
git merge rebase_iss123

这将占用所有的iss123,并将其压缩为主服务器尾部的单个提交。

现在,开发人员可以将这个主版的新发行工作分支化。

票数 4
EN

Stack Overflow用户

发布于 2014-06-24 13:25:54

一旦代码被推送到公共存储库,那么提交就不会发生任何更改。但是,当重新基于本地存储库时,推送就是查找。示例:我对一个特性分支进行了更改。然后我从我的特性分支的父分支中提取,通常是开发分支。然后,我可以在开发的基础上重新建立我的特性分支。然后我可以把我的开发分支推到原点。

因此,如果所有的开发人员都基于他们的本地重新定位,然后重新定位,那么推送它就可以了。

要点是,一旦在公共回购上共享了提交或分支,任何人都不能更改、重基或修改评论等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24387231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档