介绍
dotfiles指的是
.
开头的隐藏文件夹,一般是用户的配置或者软件信息。使用服务器或者Linux的时候,安装一些软件配置自己的使用环境是十分常见的场景。一个优秀的配置和各种软件不仅可以大幅提升工作效率,还可以美化工作环境,加强工作的动力。但是很多时候一个完整的配置是十分复杂且繁琐的,也难以去记忆每次配置时的信息。
因此很多人尝试收集配置文件,创建软连接,然后整理安装脚本,上传到github。实现难度较低。
这篇博客推荐使用基于Git的dotbot来管理dotfiles。自己编写管理脚本可能会导致脚本经常需要修改来使用不同的场合。框架在设计的时候会考虑到大部分场景,因此需要的修改和可能导致的错误较少。
Git子模块
在介绍 dotbot
之前需要了解一下
Git子模块(submodule)
的观念。当你的仓库依赖于别的仓库的时候,你可以添加一个链接指向被依赖的仓库的某个版本,而不需要去额外复制这些文件。
基本操作
添加子模块:
1 | git submodule add <仓库地址> <子模块路径> |
<仓库地址>是仓库的网络地址,<子模块路径>指的是相当于这个仓库的路径
示例:git submodule add https://github.com/example/library.git libs/library
初始化子模块,当你克隆具有子模块的仓库的时候,需要手动初始化并更新子模块:
1 | git submodule init |
也可以一次更新
1 git clone --recurse-submodules <仓库地址>
子模块管理,子模块可以像正常的仓库一样进行管理:
1 | cd <子模块路径> |
如果需要对子模块更新且不是子模块的作者的话,建议fork仓库作为子模块,fork仓库的管理此处不再阐述。
删除子模块,删除子模块需要调整 .gitmodules
和
.git/config
配置:
1 | git submodule deinit <子模块路径> |
修改子模块url:
1 | git submodule set-url <子模块路径> <新的URL> |
修改子模块路径:
1 | git mv <旧路径> <新路径> |
安装
首先你需要一个
dotfiles
文件夹(名字可以自定义),里面是你所有的配置文件。
之后进入这个文件夹,添加 dotbot
作为子模块:
1 | # Initialize Repository |
也推荐把需要安装的软件作为子模块使用
配置
通过修改 install.config.yaml
可以调整安装命令
./install
的工作。
默认的配置为:
1 | - defaults: |
几个类别的顺序会影响命令执行时的顺序
主要类别有:
- defaults:会对所有操作进行的设置
- clean:哪些links会被检查是否dead,如果是dead links会被删除
- link:创建软链接的源目录和目标目录
- shell:希望运行的指令
之后就可以简单的使用git来管理dotfile,并且使用
./install
安装即可。
Since the comment system relies on GitHub's Discussions feature, by default, commentators will receive all notifications. You can click "unsubscribe" in the email to stop receiving them, and you can also manage your notifications by clicking on the following repositories: bg51717/Hexo-Blogs-comments