版本控制具有不同家庭名称的configuration文件?

我最近决定使用版本控制系统在我的不同的Linux安装之间共享我的configuration文件。

在阅读了另一个关于这个主题的post之后,我打算用git来做。

我会把我的/ under修订控制与顶级.gitignore设置为*并手动添加我想跟踪的每个configuration文件(主要是从/etc/…文件)。

我不明白,是我如何处理不同的主目录。 举例来说,在机器AI上有/home/foo/.vimrc和在机器B上/home/bar/.vimrc ,我怎么能让git保持这两个文件在同一个版本控制仓库下?

[更新]

我正在寻找一个非常轻量级的解决scheme,只是我需要(例如没有木偶或Cfengine)。 我正在考虑在/home/whatever/中创build一个.config文件夹,在这个文件夹中我将使用git存储库保留所有重要的configuration文件。 一个非常简单的脚本就可以从我的/etc/~/… /etc/创build所需的符号链接。 还有其他build议吗?

可以说,你正在尝试使用版本控制系统来进行configurationpipe理。 这是两种截然不同的活动。 我认为你所采取的方法不会很好地扩展,并会导致大量的挫折。 你会更好地find一个configurationpipe理解决scheme的决定(有很多很好的成熟的选项:cfengine,木偶,厨师等),然后让你的configurationpipe理解决scheme从它的配方和/或configuration文件版本控制系统。 它会给你同样的净效果,你似乎正在寻找,但将有正确的工具在问题的适当部分工作。

你可以尝试一下。 它不需要一个不同的服务器。 您甚至可以在一个或多个系统上拥有主存储库,并从每个系统运行。 即使内容不同(例如/ etc / hostname,/ etc / mailname,…),也可以使configuration目录中的所有文件保持同步。

如果你真的想要使用git:我没有得到的是为什么你想把/作为你的git的基本path。 你为什么不启动多个git-repository。

  • 其中之一是你的$ HOME。 所以,你的用户名是什么都没有关系。 也许你可以使用〜/ .config目录来符号链接〜/中预期的文件。 那么你甚至不需要在这个仓库上使用.gitignore。

  • 下一个将只用于/ etc。