用于管理机器特定脚本和计时器的 Git 分支:好主意还是坏主意?

用于管理机器特定脚本和计时器的 Git 分支:好主意还是坏主意?

我有一个 bash 脚本,需要在多台(个人)机器上运行,使用 systemd 计时器。虽然这些脚本大体相似,但有些功能我需要在某些机器上启用,而在其他机器上则不需要。

目前,我使用 git 分支来管理脚本和计时器。这似乎很方便,而且运行良好,但我想知道这是否是一种推荐的做法。

虽然不太可能,但我确实看到了问题的潜在来源(人为引入的错误)​​:在机器上检出错误的分支。

我的问题:

  1. 这是否足以让人担心而避免使用 git?

  2. 是否存在我可能没有考虑到的其他潜在问题?

  3. 这种方法是否适合用于管理多台机器上的脚本和计时器?或者我是否应该 (a) 重写脚本以使其更易于移植和配置,(b) 仅使用特定于机器的文件,而不需要 git 分支,(c) 采取其他措施?

答案1

我是该库的维护者node-config,在找到成功的模型之前经历了一些配置灾难。

我建议将所有配置保存在单个分支中。

考虑一下您想要进行的一些更新,这些更新可以通过在文件中进行查找和替换来完成。如果所有文件都在同一目录中,这很容易。如果更改影响其他分支上的工作,那么您必须签出每个分支以在每个分支上进行更改。

在 中node-config,我们使用一个环境变量来设置“环境”,如“生产”或“开发”,另一个环境变量来设置“实例”。它还允许基于当前机器的主机名进行配置。

结果是具有单一集中配置的单一代码库。代码配置为根据环境变量和主机名以不同的方式运行 - 代码本身在环境和主机之间完全相同。

就您而言,您可以让 bash 框架根据主机名获取一个或多个文件。这样,您的代码在任何地方都可以完全相同,但仍会根据需要在不同主机上运行。

你甚至可能会跑全部你的计时器在每个主机上执行操作,只是让它们在某些主机上不执行任何操作。

相关内容