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

我有一个bash脚本,我需要使用systemd定时器在多个(个人)机器上运行。 尽pipe在很大程度上类似,但在某些机器上需要启用这些脚本中的某些function,而不是其他function。

现在,我使用git分支来pipe理脚本和定时器。 这似乎是方便和正常工作,但我想知道如果这是一个build议的做法。

虽然不太可能,但我确实发现了潜在的问题(人为引入错误):检查计算机上的错误分支。

我的问题:

  1. 这是否足以避免使用git?

  2. 还有其他潜在的问题,我可能没有考虑?

  3. 这种方法推荐用于pipe理多台机器上的脚本和定时器吗? 还是我最好(一)重写脚本,使他们更便携和可configuration,(二)只有机器特定的文件,没有混帐分支,(三)其他?

我是node-config库的维护者,在find一个成功的模型之前,经历了一些configuration灾难。

我build议保留所有的configuration在一个分支。

考虑你想做的一些更新,可以通过查找和replace你的文件来完成。 如果所有的文件都在同一个目录下,这是一件容易的事情。 如果更改影响到其他分支机构的工作,则必须检查每个分支机构以在每个分支机构上进行更改。

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

结果是只有一个集中式configuration的代码库。 代码被configuration为根据环境variables和主机名而有所不同 – 代码本身在环境和主机之间完全相同。

在你的情况下,你可以让你的bash框架根据主机名来源一个或多个文件。 因此,你的代码在任何地方都可以完全相同,但是在不同的主机上仍然可以按照需要运行。

你甚至可以在每台主机上运行你所有的计时器动作,只要在某些主机上不做任何事情。