3

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

假设我在 dotfiles 存储库中有我的 zshrc/bashrc。我可以将 'source /path/to/local/repo/zshrc' 行放到我的 ~/.zshrc 文件中,一切都很好。vimrc 也一样。

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

常见的做法是什么?

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

提前致谢。

4

3 回答 3

5

您可能应该使用符号链接。

ln -s /path/to/repo/.zshrc ~/.zshrc

这意味着当您尝试访问 ~/.zshrc 时,它将改为查找文件 /path/to/repo/.zshrc

有关符号链接的更多信息,请查看:符号链接

请注意,您可以完美地创建一个“硬”链接(没有 -s 选项),唯一的区别是使用硬链接您不能链接目录或链接文件系统(如果 /home 和 /path/to/repo 不在同一个磁盘/分区)

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

我通常将所有 git 存储库放在 ~/git 文件夹中,但这确实是个人选择。

于 2012-12-23T18:33:05.347 回答
1

我做了类似的事情,尽管出于历史原因,我使用 CVS 而不是 Git。

我将所有$HOME/.*文件(和$HOME/bin/*脚本)保存在 CVS 存储库中。然后,我手动使用update-homeupdate-bin我编写的脚本将文件分别复制到$HOME$HOME/bin中。这有点浪费空间(我想我可以使用符号链接代替),但还不错——通过复制而不是符号链接,我可以在存储库中试验文件而不会影响我的主目录。

除其他外,该update-home命令会为已存在的任何文件制作备份副本,这样我就不会破坏在.bashrc设置我的帐户时创建的文件。(并根据需要update-bin编辑#!行,例如,如果我想使用 Perl 可执行文件而不是/usr/bin/perl.)

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

于 2012-12-23T18:52:55.870 回答
0

一种常见的做法是在 github 中备份您的点文件。为这种做法做了很多工作。

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

你可以看看我的个人仓库,看看我是如何实现它的。在我的例子中,我使用了一个 perl 脚本dfm来处理这些符号链接

于 2016-11-14T09:24:19.013 回答