2.4 KiB
2.4 KiB
name, description, type, originSessionId
| name | description | type | originSessionId |
|---|---|---|---|
| VCS 偏好 jj | 默认使用 jj 替代 git 进行版本控制操作,含 fetch/同步/divergent 处理经验 | feedback | 9d12ba86-e9e5-44bf-8d5b-7df3b86f5224 |
默认使用 Jujutsu (jj) 替代 git 进行版本控制操作。所有 bash 脚本、Python 代码、skills、commands 和文档中的 git 命令应优先使用 jj 等价命令。
Why: 用户决定将版本控制工具从 git 迁移到 jj。
How to apply:
- 新脚本/代码使用 jj 命令
- 修改现有文件时将 git 命令替换为 jj 等价命令
- 提交规范保持中文类型不变(
team/git.md中的规范仍适用) - 参考命令对照表:
team/jj.md - jj 相关术语在文档中统一使用中文(书签、变基、摘选、变更标识、提交标识、版本集查询、并存模式等),仅命令行代码中保留英文原文
Agent 并行开发
- jj 原生支持多工作副本(
jj workspace add),详见team/jj.md - Claude Code Agent 并行开发推荐使用内置
EnterWorktree(走 git worktree),无需手动创建 jj workspace - Agent 完成后主目录通过
jj git fetch && jj git import同步 - 禁止多个 Agent 在同一目录编辑,必须各自在独立 worktree 中工作
远程同步与 Divergent 处理
Why: 2026-04-14 遇到 jj git fetch 返回 "Nothing changed" 但远程 trunk 实际有新提交的情况,根因是 divergent change ID 导致视觉混乱 + auto-track-bookmarks 默认关闭。
How to apply:
- fetch 后工作区不跟随远程书签时:
jj rebase -r @ -d trunk - 出现 divergent change ID 时:用
jj op log查明原因,必要时jj op restore <id>回退 - 不要轻易
jj abandondivergent 版本:如果它是另一个版本的祖先,会产生冲突;应优先用jj op restore - 已配置
remotes.origin.auto-track-bookmarks = '*':fetch 后本地书签自动跟随远程,容器重建也不会丢失(post-create.sh + 卷挂载双重保障) - 排查 fetch 问题时:用
jj bookmark list --all对比@origin和本地书签指向,用git log HEAD..origin/trunk交叉验证
jj 配置持久化
- 用户级配置路径:
~/.config/jj/config.toml - DevContainer 中通过
post-create.sh自动设置 +.volumes/jj卷挂载持久化 - 关键配置:
user.name、user.email、remotes.origin.auto-track-bookmarks