在 git 中查找特定的提交文件组合

Find specific combinations of files of commits in git

我有以下情况想解决。我目前专注于为此使用 git,但这可能不是正确的路径。

我有一个文件docker-compose.yml,我们称这个文件为A 和一个文件,docker-compose.override.yml,我们称这个文件为 B (以后还会有额外的文件,但由于那基本上是重复的情况,所以我们暂时忽略这个扩展)

A 和 B 的不同版本使用 v1.0 等表示,即:Av1.0 和 Bv2.1

我们从 Av1.0 和 Bv1.0 开始 然后我们添加 Av1.1(因此保留 Bv1.0) 然后我们添加 Bv1.1 等等。从历史的角度来看,你会看到这样的东西:

Av1.0  Bv1.0
Av1.1  Bv1.0
Av1.1  Bv1.1
Av2.0  Bv1.1
Av3.0  Bv1.1
Av3.0  Bv3.0

(记住,文件名为A和B,只是内容不同)

我如何通过以下方式从存储库中找到特定版本集:

我考虑过使用标签和特定的提交字符串,但我也希望用户提交新版本的 A 或 B 而不必遵守非常严格的文本输入(标签或提交),因为很容易出现错字。 另一个解决方案是完全自动添加到回购协议,但我不知道要开始。因此,我们将不胜感激。

经过大量搜索和阅读,我找到了完成它的方法。

结合使用分支和标记,我们可以获得预期的结果。

怎么办?

  • 每个主要版本都有自己的分支
  • 每个次要版本都在主版本分支下提交
  • 每个版本都使用与发布相匹配的版本控制系统进行标记

因此可以在分支下找到主要版本的最新版本 任何其他需要的版本都可以通过使用给每个提交的标签找到。

重要提示:标记是通过使用 git 提交挂钩完成的。因为由于拼写错误或其他问题,不应由人进行标记。并且标记只能在成功提交后才能完成。

最后看起来像这样:

Av1.0  Bv1.0  <- branch 1.0 tag 1.0-0
Av1.1  Bv1.0  <- branch 1.1 tag 1.1-0
Av1.1  Bv1.1  <-            tag 1.1-1
Av2.0  Bv1.1  <- branch 2.0 tag 2.0-0 (it is the first version in this branch, so it is a 0)
Av3.0  Bv1.1  <- branch 3.0 tag 3.0-0
Av3.0  Bv3.0  <-            tag 3.0-1 (it is the 2nd version of B in this branch so it gets a 1)