如何对 git 提交进行分类?

问题描述

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

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

解决方法

GitLab 不是你做主要工作的地方,而是你发布它的地方。任何超出您在本地存储库中所做的基础知识的事情。提交上的可搜索标签听起来像 Git 的笔记工具,“A typical use of notes is to supplement a commit message without changing the commit itself”。它是通用标签/搜索工具的构建块,无论您想要对注释产生什么样的影响,您都可以自己实现。我不知道 the GitLab merge mentioned here 实际实现了什么,但他们肯定知道它,人们确实将它用于您所描述的事情。

,

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

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

当心 inconvenients of cherry-picking though

在您的情况下,从 A 到 B 精心挑选的代码可能依赖于来自 A 的其他代码出现在 B 中。

,

在我的公司,我的团队同时与 5 个客户合作,因此我们找到了一种方法来挑选/合并一个特性到另一个使用标签来识别版本、更改或一组提交 不幸的是,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 的免费 G​​UI。