与git使用符号链接

我曾经有我的系统configuration文件都在一个目录中,以便更好的pipe理,但现在我需要使用一些版本控制。

但问题是git不理解指向仓库之外的符号链接,而且我不能颠倒angular色(仓库上的真实文件和正确path上的符号链接),因为有些文件被读取内核加载之前。

我认为我可以使用unison来同步仓库中的文件和他们的path,但这是不实际的。 硬链接可能会被打破。 任何想法 ?

如果手动是编辑这些文件的唯一方法,那么可以将标准版本放入系统configuration目录中,并在git中设置一个提交后的钩子,将其复制到“真实”位置。

在Debian和派生的发行版中,可以使用etckeeper来pipe理/etc etc。 就像安装etckeeper一样简单,运行etckeeper init一次,当你改变了某些东西时运行etckeeper commit

我不知道etckeeper是否可以直接用于Arch Linux,但是网上有成功的 报告 。

Etckeeper使用git挂钩来处理元数据,如权限,所有权和符号链接。

您可以使用--work-tree标志和--git-dir标志( git help git ,将两者设置为绝对path并生成别名)将.git文件夹放在版本化目录之外。

使它硬链接,而不是软链接。

我有同样的问题,我使用etckeeper,它将我的文件复制到/ etc,我不想要的。

所以,而不是

 ln -s /srv/www/site/apache.conf srv_site.com 

 ln /srv/www/site/apache.conf srv_site.com 

它的工作原理! :d