![用于管理机器特定脚本和计时器的 Git 分支:好主意还是坏主意?](https://linux22.com/image/709954/%E7%94%A8%E4%BA%8E%E7%AE%A1%E7%90%86%E6%9C%BA%E5%99%A8%E7%89%B9%E5%AE%9A%E8%84%9A%E6%9C%AC%E5%92%8C%E8%AE%A1%E6%97%B6%E5%99%A8%E7%9A%84%20Git%20%E5%88%86%E6%94%AF%EF%BC%9A%E5%A5%BD%E4%B8%BB%E6%84%8F%E8%BF%98%E6%98%AF%E5%9D%8F%E4%B8%BB%E6%84%8F%EF%BC%9F.png)
我有一个 bash 脚本,需要在多台(个人)机器上运行,使用 systemd 计时器。虽然这些脚本大体相似,但有些功能我需要在某些机器上启用,而在其他机器上则不需要。
目前,我使用 git 分支来管理脚本和计时器。这似乎很方便,而且运行良好,但我想知道这是否是一种推荐的做法。
虽然不太可能,但我确实看到了问题的潜在来源(人为引入的错误):在机器上检出错误的分支。
我的问题:
这是否足以让人担心而避免使用 git?
是否存在我可能没有考虑到的其他潜在问题?
这种方法是否适合用于管理多台机器上的脚本和计时器?或者我是否应该 (a) 重写脚本以使其更易于移植和配置,(b) 仅使用特定于机器的文件,而不需要 git 分支,(c) 采取其他措施?
答案1
我是该库的维护者node-config
,在找到成功的模型之前经历了一些配置灾难。
我建议将所有配置保存在单个分支中。
考虑一下您想要进行的一些更新,这些更新可以通过在文件中进行查找和替换来完成。如果所有文件都在同一目录中,这很容易。如果更改影响其他分支上的工作,那么您必须签出每个分支以在每个分支上进行更改。
在 中node-config
,我们使用一个环境变量来设置“环境”,如“生产”或“开发”,另一个环境变量来设置“实例”。它还允许基于当前机器的主机名进行配置。
结果是具有单一集中配置的单一代码库。代码配置为根据环境变量和主机名以不同的方式运行 - 代码本身在环境和主机之间完全相同。
就您而言,您可以让 bash 框架根据主机名获取一个或多个文件。这样,您的代码在任何地方都可以完全相同,但仍会根据需要在不同主机上运行。
你甚至可能会跑全部你的计时器在每个主机上执行操作,只是让它们在某些主机上不执行任何操作。