将 cherry-picks 限制为 GIT

Restrict cherry-picks to GIT

我们希望我们的开发人员完全不要挑选并遵循我们的标准分支策略。我们使用比特桶。 有没有一种简单的方法可以禁止制作 cherry-picks? Google 没有帮助,唯一的方法是开发一个 git 挂钩 - 耗时的选项。

提前致谢!

实际上,这些工具无能为力。 cherry-pick 命令只是自动创建一个提交,其补丁恰好与另一个现有提交的补丁相匹配;结果提交没有什么特别之处,所以即使是钩子也无法真正找出提交是精心挑选的事实。

我是作为一个不太喜欢 cherry-pick 的人这么说的 - 或者,至少,认为它被过度使用和过度推荐。但是,即使您找到了防止 cherry-pick 的方法,想要这样做的开发人员也可以想出简单的 rebase 方法来做同样的事情。或者他们可以手动为源代码提交生成补丁并手动将其应用到目标分支,使其在发出的 git 命令方面与手动编码的提交没有区别。

最后一句话应该说清楚,即使您将源代码控制工具更改为 没有 cherry-pick 概念的工具,开发人员仍然可以手动做同样的事情,如果他们有动力去做的话。

有时问题不是技术问题。

此问题需要人工解决,而非技术解决。制定约定并使用代码审查来监控这一点。

请注意,git cherry-pick 本身并不一定是坏事。有时我在一个分支上工作,把所有东西都搞砸了,以至于我需要从一个新分支重新开始。但是,我的旧分支经常有一些小的提交,我对它们的质量很有信心。我挑选这些提交到新分支。所有工作完成后我的最终拉取请求来自新分支,因此没有重复相同文本代码更改的提交。

我发现这通常有助于减少在损坏的分支上回溯所花费的时间。在这种情况下,完全禁用 cherry picks 会阻碍我。