如何对 git 提交进行分类?

How to categorize git commits?

我们在两个不同的领域有两个独立的项目。让我们假设 A 项目(主要)和 B 项目。有时我们需要使用git cherry-pick命令在B项目上使用我们已经在A项目上启动的一些特定功能,但是在这个过程中出现了问题:

我们如何在 GitLab 站点上的数千个提交中找到容易相关的提交? 我们正在寻找一种在我们的提交上贴上可搜索标签的方法,该标签指定哪个提交适合 A 项目,哪个适合两个项目。 我们无法搜索并找到那些带有合并请求过程标签的提交(在 gitlab.com)。

Git实验室不是您完成主要工作的地方,而是您发布它的地方。超出您在本地仓库中所做的基础工作的任何事情。提交上的可搜索标签听起来像 Git 的注释工具,“A typical use of notes is to supplement a commit message without changing the commit itself". It's the building blocks of a general labelling/searching facility, whatever you want for consequences to annotations you get to implement yourself. I have no idea what the GitLab merge mentioned here 实际实现了,但他们当然知道它,人们确实将它用于你所描述的事情。

在我的商店中,这是通过使用 Jira 票证 ID 的提交消息前缀来管理的。

每个功能都是通过引用 Jira 票证实现的,并且可以根据提交消息前缀将功能从一个项目导入到另一个项目。

当心inconvenients of cherry-picking though

在您的情况下,从 A 到 B 的代码可能取决于 A 中的其他代码 而不是 存在于 B 中。

您可以在提交消息上使用 #A-project 前缀对提交进行签名,然后使用提交消息在 Gitlab 上轻松搜索所需的提交。

在我的公司,我的团队同时与 5 个客户打交道,所以我们找到了一种方法 cherry-picking/merging 一个功能从一个到另一个 使用标签来识别版本、更改或一组需要“复制”的提交。 不幸的是,GitLab 不是处理这种 git 操作的最佳或推荐工具。

要了解有关标记的更多信息:https://git-scm.com/book/en/v2/Git-Basics-Tagging

如果您正在使用 Windows,我建议您尝试使用其他工具,例如 Git Tortoise(简单且功能强大)。但是如果这样说对你来说还不能说服你,那么我会给你一个提示,在你的提交描述中加入某种模式,以便稍后简单地搜索它们(不推荐)。

为 Git 下载一些 GUI 客户端:https://git-scm.com/downloads/guis

Linux、Windows 和 MacOS 有很多免费的优秀 GUI。