Files
team/memory/vcs-preference-jj.md
T
2026-04-19 21:47:08 +08:00

42 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: VCS 偏好 jj
description: 默认使用 jj 替代 git 进行版本控制操作,含 fetch/同步/divergent 处理经验
type: feedback
originSessionId: 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:**
1. **fetch 后工作区不跟随远程书签时**`jj rebase -r @ -d trunk`
2. **出现 divergent change ID 时**:用 `jj op log` 查明原因,必要时 `jj op restore <id>` 回退
3. **不要轻易 `jj abandon` divergent 版本**:如果它是另一个版本的祖先,会产生冲突;应优先用 `jj op restore`
4. **已配置 `remotes.origin.auto-track-bookmarks = '*'`**:fetch 后本地书签自动跟随远程,容器重建也不会丢失(post-create.sh + 卷挂载双重保障)
5. **排查 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`