【问题标题】:Git: Manage Version Control on Multiple Single Files in a RepoGit:管理回购中多个单个文件的版本控制
【发布时间】:2016-05-08 22:10:43
【问题描述】:

我有一个文件夹,我在其中保存和维护大约 20 个或 MySQL 脚本文件,我目前正在使用 Git 管理版本控制。由于这些脚本在某种程度上彼此独立,因此我想将我的存储库设置为单独跟踪每个文件的版本控制。例如,假设我有以下内容:

ImportTableA.sql  -> v1.5
ProcessTableA.sql -> v1.2
TableAReport.sql  -> v2.1

一段时间后,对其中两个文件进行了一些修改,它们看起来像这样:

ImportTableA.sql  -> v1.7
ProcessTableA.sql -> v1.2
TableAReport.sql  -> v3.0

由于 Git 中的版本控制和标签作为一个整体应用于 repo,是否有一种 easy 方法来跟踪单个文件的版本?我能想到的唯一方法是为每个文件创建一个单独的 repo,但是管理起来相当麻烦。

【问题讨论】:

  • 为什么要为此使用 git? rcs 仍然运行良好。
  • 涂抹|清洁过滤器。或 Mercurial,带有针对关键字扩展的特制关键字。或者不要在地球上拉猫头鹰,而是对 repo 中的所有文件使用通用的 changeset-id

标签: git repository


【解决方案1】:

只需在每个文件的顶部添加带有版本的注释即可。

好吧,我在开玩笑。你是对的:每个文件都有一个单独的 repo(顺便说一句,你可以使用 submodules 将它们合并到你的主 repo 中)是相当麻烦的。

如果可以将该脚本移动到数据库中并在那里管理它们(使它们成为存储过程),那么您可以使用数据库迁移工具。他们有很多。 LiquibaseFlyway 仅举几例。您仍然需要在 Git 中存储迁移。

【讨论】:

  • 实际上,您可能已经为我指明了正确的方向;我正在研究子模块的使用,并将脚本组织成 4 个子模块。尽管它们并不完全适合这种情况,但似乎子模块可能会起作用。我发现的唯一真正的障碍是 git submodule add 命令假定远程仓库已经创建。不知道如何从头开始创建远程子模块。
猜你喜欢
  • 2011-01-03
  • 1970-01-01
  • 1970-01-01
  • 2020-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-06
  • 1970-01-01
相关资源
最近更新 更多