和其他许多人一样,我希望在我的配置文件中安装一个git存储库,并将其备份上传到托管站点。我的问题是如何处理本地仓库的dotfiles。
假设我在dotfiles repo中有我的zshrc / bashrc。 我可以将'source / path /到/ local / repo / zshrc'这一行放到我的〜/ .zshrc文件中,一切都很好。与vimrc相同。
但那些不支持这样命令的dotfiles呢?我是否应该在〜/ .conffile和/ pathtolocalrepo / conffile中具有相同的内容,当我对其中一个进行更改时更新另一个文件?或者有更聪明的方法吗?
通常的做法是什么?
这个本地存储库通常位于何处(在Linux上)? 我不认为主文件夹是放置它的正确位置(配置文件也应该对其他用户可用),但哪个地方最适合它?
提前致谢。
答案 0 :(得分:5)
您应该使用符号链接。
ln -s /path/to/repo/.zshrc ~/.zshrc
这意味着当你尝试访问〜/ .zshrc时,这将代替文件/path/to/repo/.zshrc
有关符号链接的更多信息,请查看以下内容:Symbolic Links
请注意,您可以完美地创建一个" hard" link(没有-s选项),唯一的区别是硬链接不能链接目录,也不能通过文件系统链接(如果/ home和/ path / to / repo不在同一磁盘/分区上)
这个本地存储库通常位于何处(在Linux上)?一世 不要认为主文件夹是放置它的正确位置(配置文件 也应该对其他用户可用),但哪个地方适合它 最好?
我通常将所有git存储库放在〜/ git文件夹中,但这确实是个人选择。
答案 1 :(得分:1)
我做了类似的事情,但由于历史原因,我使用CVS而不是Git。
我将所有$HOME/.*
个文件(和$HOME/bin/*
脚本)保存在CVS存储库中。然后,我手动使用我编写的update-home
和update-bin
脚本将文件分别复制到$HOME
或$HOME/bin
。这有点浪费空间(我想我可以使用符号链接),但不是很糟糕 - 通过复制而不是符号链接,我可以在存储库中试验文件,而不会影响我的主目录。
除了其他功能之外,update-home
命令还会对已存在的任何文件进行备份,这样我就不会破坏设置帐户时创建的.bashrc
文件。 (并update-bin
根据需要编辑#!
行,例如,如果我想使用/usr/bin/perl
以外的Perl可执行文件。)
(我的update-home
和update-bin
脚本不适合其他人使用;它们充满了仅适用于我的硬连线名称。只需手动复制文件也可以正常工作。)
答案 2 :(得分:0)
通常的做法是在github中备份你的dotfiles。这种做法有很多工作要做。
我们的想法是为您要使用的每台新计算机克隆该存储库。
您可以查看我的个人repo,了解我是如何实施的。在我的例子中,我使用了一个名为dfm
的perl脚本来处理这些符号链接