如何处理本地dotfile存储库?

时间:2012-12-23 18:26:31

标签: linux git dotfiles

和其他许多人一样,我希望在我的配置文件中安装一个git存储库,并将其备份上传到托管站点。我的问题是如何处理本地仓库的dotfiles。

假设我在dotfiles repo中有我的zshrc / bashrc。 我可以将'source / path /到/ local / repo / zshrc'这一行放到我的〜/ .zshrc文件中,一切都很好。与vimrc相同。

但那些不支持这样命令的dotfiles呢?我是否应该在〜/ .conffile和/ pathtolocalrepo / conffile中具有相同的内容,当我对其中一个进行更改时更新另一个文件?或者有更聪明的方法吗?

通常的做法是什么?

这个本地存储库通常位于何处(在Linux上)? 我不认为主文件夹是放置它的正确位置(配置文件也应该对其他用户可用),但哪个地方最适合它?

提前致谢。

3 个答案:

答案 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-homeupdate-bin脚本将文件分别复制到$HOME$HOME/bin。这有点浪费空间(我想我可以使用符号链接),但不是很糟糕 - 通过复制而不是符号链接,我可以在存储库中试验文件,而不会影响我的主目录。

除了其他功能之外,update-home命令还会对已存在的任何文件进行备份,这样我就不会破坏设置帐户时创建的.bashrc文件。 (并update-bin根据需要编辑#!行,例如,如果我想使用/usr/bin/perl以外的Perl可执行文件。)

(我的update-homeupdate-bin脚本不适合其他人使用;它们充满了仅适用于我的硬连线名称。只需手动复制文件也可以正常工作。)

答案 2 :(得分:0)

通常的做法是在github中备份你的dotfiles。这种做法有很多工作要做。

我们的想法是为您要使用的每台新计算机克隆该存储库。

您可以查看我的个人repo,了解我是如何实施的。在我的例子中,我使用了一个名为dfm的perl脚本来处理这些符号链接