【问题标题】:How to treat a local dotfile repository?如何处理本地 dotfile 存储库?
【发布时间】:2012-12-10 09:55:34
【问题描述】:

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

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

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

常见的做法是什么?

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

提前致谢。

【问题讨论】:

标签: linux git dotfiles


【解决方案1】:

你应该使用符号链接。

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

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

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

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

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

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

【讨论】:

  • 符号链接意味着当您对/path/to/repo/.zshrc 进行修改时,您可以暂时拥有一个不工作的~/.zshrc。复制而不是符号链接可以避免这个问题。
【解决方案2】:

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

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

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

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-05-31
      • 2020-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      • 2012-04-07
      • 2018-09-04
      • 1970-01-01
      相关资源
      最近更新 更多