问题描述
我们在两个不同的域上有两个不同的项目。让我们假设 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 的免费 GUI。