我曾经有我的系统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