Git 是否有任何方法可以对存储库中的各个组件进行版本设置/标记?

Git 是否有任何方法可以对存储库中的各个组件进行版本设置/标记?,git,Git,我对git还很陌生,所以我的问题介于“这可能吗?”和“我从哪里开始寻找答案?” 我继承了一个代码库,它全部存储在一个git/GitHub存储库中,我需要建立一个版本编号方案。我已经确定,最好的方法是使用git标记,并建立一个3位数的版本号,如v1.3.4,还可以使用git descripe命令来获取更多信息。那太好了 问题是,这实际上是一个包含两个不同组件的软件包,稍后我们可能需要单独装运这些组件。因此,我试图找出一个好的版本编号方案来处理这个问题,并看看是否可以在git/GitHub基础设施中

我对git还很陌生,所以我的问题介于“这可能吗?”和“我从哪里开始寻找答案?”

我继承了一个代码库,它全部存储在一个git/GitHub存储库中,我需要建立一个版本编号方案。我已经确定,最好的方法是使用
git标记
,并建立一个3位数的版本号,如v1.3.4,还可以使用
git descripe
命令来获取更多信息。那太好了

问题是,这实际上是一个包含两个不同组件的软件包,稍后我们可能需要单独装运这些组件。因此,我试图找出一个好的版本编号方案来处理这个问题,并看看是否可以在git/GitHub基础设施中使用这个版本编号方案

让我们假设整个应用程序是一个钓鱼杆,它有一根鱼竿和一个卷轴。我想做的是能够对所有这些单独进行版本设置。所以我们可以发布:

  • 鱼竿v1.2.1,包括
  • 鱼竿v1.0.1
  • FishingReel v1.2.0
稍后,如果我们对FishingReel进行更改,我们会碰撞其修订版,并自然碰撞顶级修订版,但FishingRod不会更改:

  • 鱼竿v1.2.2,包括
  • 鱼竿v1.0.1
  • 鱼线轮v1.2.1

问题是在我看来,
git标记
只能作为一个整体应用于存储库。作为一个相关的问题,似乎没有任何方法可以让git descripe给出组件(FishingRod或FishingReel)的描述,而是只描述整个存储库(它只描述FishingPole)如果所有这些片段都存在于同一个存储库中,是否有合理的方法使此方案与
git标记
git descripe
一起工作?

我不确定您所说的“应用于整个存储库”是什么意思。一个标记与一个特定的提交相关联,多个标记可以引用同一个提交。更重要的是,您的构建系统,给定特定提交时的代码,可以分别构建三个发布工件中的任何一个。@chepner是的,我正试图找出如何最好地表达我的问题。使用上面的示例,是否有任何有用的方法可以使用
git标记
git descripe
来记录和读取FishingReel的版本,与存储库中的其他文件分开?或者我是否总是需要跟踪标签中“所有内容”的版本,例如,我的标签需要显示“FishingPole V1.2.2 FishingRod V1.0.1 FishingReel V1.2.1”?您不需要一个巨大的标签。只需使用单独的标签;如果同一个提交恰好是
Pole-1.2.2
Rod-1.0.1
,那么该提交有两个标记。@chepner是的,但在这种情况下,
git description
不会失去它的所有用处吗?因为我的理解是,
git descripe
引用了最近的标记,所以如果我添加一个
Rod-1.0.1
标记,然后添加
Pole-1.2.2
标记,那么
git descripe
将始终返回
Pole-1.1.2-(其他内容)
,我必须亲自去挖掘,以了解最新版本的
Rod
reveel
。。。我的理解正确吗?你可以使用<代码> --Matter 过滤你认为“适用”的标签到被质疑的提交。我不确定你所说的“应用于整个存储库”是什么意思。一个标记与一个特定的提交相关联,多个标记可以引用同一个提交。更重要的是,您的构建系统,给定特定提交时的代码,可以分别构建三个发布工件中的任何一个。@chepner是的,我正试图找出如何最好地表达我的问题。使用上面的示例,是否有任何有用的方法可以使用
git标记
git descripe
来记录和读取FishingReel的版本,与存储库中的其他文件分开?或者我是否总是需要跟踪标签中“所有内容”的版本,例如,我的标签需要显示“FishingPole V1.2.2 FishingRod V1.0.1 FishingReel V1.2.1”?您不需要一个巨大的标签。只需使用单独的标签;如果同一个提交恰好是
Pole-1.2.2
Rod-1.0.1
,那么该提交有两个标记。@chepner是的,但在这种情况下,
git description
不会失去它的所有用处吗?因为我的理解是,
git descripe
引用了最近的标记,所以如果我添加一个
Rod-1.0.1
标记,然后添加
Pole-1.2.2
标记,那么
git descripe
将始终返回
Pole-1.1.2-(其他内容)
,我必须亲自去挖掘,以了解最新版本的
Rod
reveel
。。。我的理解正确吗?你可以使用<代码> --Matter 来过滤你认为适用的标签。