dotfiles 管理环境配置
dotfiles 管理环境配置
目标 & 背景
在我日常使用过程中,希望对现有的一些配置进行版本管理,比如 zsh
、nvim
等工具,又或者 gitconfig
这些 dotfile,但是一直没找到比较合适的管理方式,直到看到了 dotfiles
,此套流程非常简单,借助软连接 + git 版本管理来实现
完成配置后,你可以解决如下场景
- 多电脑配置同步
- 配置版本管理
dotfiles 仓库配置
首先在你喜欢的 git 仓库,创建一个名为 .dotfiles
的仓库,完成初始化后,就可以开始了
此处需要非常注意层级关系,我们需要遵守
stow
的自动化规则,来创建层级,具体命令行后面会进行介绍
我们以 zsh
和 nvim
这两种配置进行介绍,首先无论那种情况,我们都需要创建一个单独的文件夹进行管理
比如 zsh
中相关的配置是 .zshrc
,那么就要把这个文件放在如下目录
.
├── .git
└── zsh
└── .zshrc
nvim
也是同理,只是需要对应创建 .config/nvim
目录
├── nvim
│ └── .config
│ └── nvim # 真正的配置放在这个目录下
其他的配置基本上可以参考此套思路
stow
接着需要使用 stow
这个工具,完成配置文件软连接的自动生成,使用如下命令进行安装
brew install stow
这里我们主要使用如下几种方式:
# 假设当前在 dotfiles 的文件夹下
# 模拟同步 .dotfiles/bash 下的配置,软连接到 ~ 目录
stow -nvt ~ bash
# 很有可能你在开始时,在对应的额目录下,已经有了配置,如 .zshrc文件
# 此时使用 --adopt 可以完成这个场景的自动化
stow --adopt -nvt ~ bash
上述内容需要注意,一定要增加 -n
参数,防止配置被误删,在自己确认完毕后,再进行移除!此时就可以运行
# 不存在目标文件时
stow -vt ~ bash
# 存在目标文件时
stow --adopt -vt ~ bash
此时你会注意到,最后一个参数就是 .dotfile
中对应的初始文件夹名称 bash
,按照模块划分后,我们可以自行选择同步哪一个模块,但是后面模块比较多时,我们可以使用通配符 *
来表示所有模块
stow -vt ~ *
# 或者
stow --adopt -vt ~ *
如果还有其他使用需求可以查阅 stow -h
参考
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果