gpt4 book ai didi

git - 多个开发人员 push 相同的更改

转载 作者:太空狗 更新时间:2023-10-29 13:25:26 25 4
gpt4 key购买 nike

当两个或更多人将补丁集推送到 Gerrit 中的同一个变更集时,我正在努力寻找一个好的工作流程。

我正在尝试使用命令行 Git 命令(没有 git-review、IDE 等)来完成此操作。

从 Gerrit 服务器 pull 下最新的补丁集以进行特定更改非常容易,但我不确定从那里开始。

我认为这个过程是:

  • 从服务器获取最新的补丁集以进行更改
  • 基于最新的补丁集
  • 推送

但在 rebase 期间,它将所有传入的更改标记为冲突,即使它们没有在本地更改也是如此。

这可能与下载的最新补丁集无法通过本地 HEAD 访问有关。

谁能建议多个开发人员如何处理同一个更改?

编辑:此问题的答案显示在以下描述的技术中:How to change a patchset and push it as a new one?

最佳答案

您的问题是 gerrit 本身。 gerrit 中的变更集是单个 git 提交,只要变更集在审查过程中发生更改,就会被重写。因此,您会得到这样的历史记录:

reviewed branch head --- changeset A, first revision
\-- changeset A, second revision
\- changeset A, third revision

现在,使用您在问题中勾勒的工作流程,您尝试创建此历史记录:

reviewed branch head --- changeset A, first revision --- changeset A, second revision

如果您这样做,两个修订版中存在的任何更改都会与自身发生冲突

解决此问题的 gerrit 方法是获取变更集的最新修订版,修改变更集,然后将其作为变更集的新修订版推送,替换以前的变更集,希望在此期间没有其他开发人员在同一变更集上工作。最后一部分是基于 gerrit 的工作流无法实现用纯 git 做的微不足道的事情:开发人员无法在同一个变更集上并行工作。这与纯 git 形成鲜明对比,在纯 git 中,所有开发人员都可以随心所欲地自由创建新的提交、分支和 merge ,并且 git 能够将所有片段放回原处一起。但要使其发挥作用,git 中的提交必须保持不变,gerrit 工作流违反了这一原则。

如果您问我,最好的办法是避免使用 gerrit。它的基本工作流程已损坏,您最好按照 linux 开发人员使用它的方式使用纯 git

关于git - 多个开发人员 push 相同的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33813465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com