为了更好地管理,我过去将我的系统配置文件全部放在一个目录中,但现在我需要对其进行一些版本控制。
但问题是 git 不理解指向存储库外部的符号链接,而且我无法反转角色(将真实文件放在存储库中,将符号链接放在正确的路径上),因为某些文件在内核加载之前就被读取了。
我认为我可以使用 unison 来同步存储库中的文件及其路径,但这不切实际。而且硬链接可能会被破坏。有什么想法吗?
答案1
如果手动是编辑这些文件的唯一方法,您可以将规范版本放入系统配置目录,并在 git 中设置一个提交后钩子,将它们复制到它们的“真实”位置。
答案2
答案3
您可以使用--work-tree
标志和--git-dir
标志(git help git
,将两者都设置为绝对路径并创建别名)将 .git 文件夹置于版本化目录之外。
答案4
使其成为硬链接,而不是软链接。
我有同样的问题,我使用 etckeeper,它将我的文件复制到 /etc,而我不想要这样。
因此,
ln -s /srv/www/site/apache.conf srv_site.com
做
ln /srv/www/site/apache.conf srv_site.com
并且成功了!:D