dotfiles

使用 Jujutsu VCS 管理用户主目录下的配置文件

安装使用

复制下面这段提示词发给你的 AI(Claude / Cursor / TRAE / Codex / WorkBuddy 等),它会自动帮你完成安装:

帮我安装这个 AI Skill:dotfiles。
它的用途是:使用 Jujutsu VCS 管理用户主目录下的配置文件
详细介绍见:https://321skill.com/skills/dotfiles-datwaft/
请根据该页面的说明完成安装。

使用示例

'帮我在新电脑上设置我的开发环境,用 jj 拉取我的 dotfiles 配置。',它会指导你完成安装 jj、初始化仓库、从远程拉取配置并应用到主目录的全过程。或者,当你修改了 .zshrc 文件后,

对AI说:'我想把最新的 shell 配置更新到仓库里',它会提示你使用 `jj file track --include-ignored ~/.zshrc` 和 `jj commit -m 'Update zsh config'` 等命令来保存更改。

介绍

这个 Skill 解决了开发者在多台机器间同步和管理配置文件(如 .bashrc, .vimrc)的痛点。传统方法通常需要创建符号链接或手动复制,而本方案将版本控制仓库直接设置在主目录(~)下,使用 Jujutsu (jj) 作为版本控制工具,无需创建任何符号链接即可跟踪和管理所有点文件。

使用前需要安装 git 和 jj。核心步骤是先在主目录创建一个全局的 .gitignore 文件忽略所有内容,然后初始化一个 bare git 仓库作为 jj 的后端,并将主目录设置为工作区。之后配置远程仓库、拉取代码并检出即可。整个配置过程通过几条命令完成,将主目录变成了一个受版本控制的工作区。

它非常适合需要频繁在不同开发环境(如办公电脑、家用电脑、服务器)之间保持开发环境一致性的开发者,尤其是全栈开发、运维工程师和追求高效工作流的程序员。对于习惯使用命令行并希望深度定制开发环境的用户来说,这是一个优雅的解决方案。

需要注意的是,由于工作区是整个主目录,操作时需要小心,避免误将私人文件(如文档、下载内容)加入版本控制。仓库默认忽略所有文件,必须使用 jj file track --include-ignored 来显式添加要跟踪的配置文件,这是一种安全防护机制。此外,当进入另一个 git 仓库时,jj 会优先使用该仓库,这是符合预期的行为。

核心特点

与使用 Git 和符号链接的传统 dotfiles 管理方案不同,它直接使用 Jujutsu VCS (jj) 将用户主目录本身作为版本控制的工作树,彻底省去了创建和维护符号链接的步骤,实现了更原生、更直接的文件管理。

注意事项

不适合不熟悉命令行操作或对 Jujutsu VCS 不感兴趣的用户,也不适合管理非配置文件或大量二进制文件。

常见问题

Jujutsu (jj) 和 Git 有什么区别?为什么要用它?

Jujutsu 是一个兼容 Git 的现代版本控制系统,它提供了更直观的命令、自动提交、更好的分支合并体验等。在此方案中,它主要用来实现将主目录作为工作树的独特工作流。

这个方案会拖慢我的主目录或影响其他 Git 工具吗?

不会。jj 使用一个独立的 bare git 仓库(~/.dotfiles)存储数据,常规的 Git 工具不会在主目录检测到仓库,因此没有性能影响或冲突。