jj-vcs/jj
Jujutsu(jj)是兼容 Git 的版本控制系统,工作副本改动自动记为提交,并记录所有操作以便撤销。
- Star
- 32,382
- Fork
- 1,279
- 未关闭 Issue
- 1,249
- 最近提交
- 14小时前
这是什么?
Jujutsu 是一款面向软件项目的版本控制系统,用于获取代码副本、跟踪修改并把改动发布给他人。命令行工具名为 jj。默认存储后端基于 Git 仓库,因此可以与任何 Git 远端拉取和推送,也随时能切回 Git 使用。
它把工作副本本身当作一个真实提交,因此脏工作区不会导致命令失败,也不需要 stash 或暂存区。仓库中的每个操作都会记录在操作日志里,便于撤销错误或回滚更早的某次操作。冲突以对象形式保存在提交中,不会打断当前流程;修改某个提交后,其后代提交会自动变基,冲突的解决方案也会随之传播。
项目融合了 Git、Mercurial 和 Darcs 的设计理念,例如 revset 查询语言和匿名分支。目前 Git 后端已可用于生产环境,但项目尚未发布 1.0,部分工作流和磁盘格式仍可能变化。
核心功能
- 01默认使用 Git 仓库作为存储,可与任意 Git 远端协作。
- 02工作副本即提交,无需暂存区或 stash。
- 03记录每一次仓库操作,支持撤销和回滚历史操作。
- 04冲突保存在提交中,修改后自动变基后代提交。
- 05提供 jj describe、jj diffedit、jj split、jj squash 等命令用于改写历史。
适用场景
- 希望在现有 Git 仓库上获得更简单工作流的开发者。
- 需要借助操作日志从误操作中恢复的团队。
- 将仓库放在 Dropbox 目录中或用 rsync 备份,且需要并发安全的场景。
快速上手
- 1
按照 README 中链接的官方安装说明安装 jj
- 2
阅读官方教程学习基础用法
- 3
使用 jj help <命令> 查看任意命令的用法
使用前须知
- README 称 Jujutsu 仍处于实验阶段,可能存在缺陷并会改变用户界面。
- 只有 Git 存储后端达到生产可用水平,其他后端尚未就绪。
- README 称该项目还比较年轻,仍有大量工作待完成。
- 部分功能(如安全的并发复制)被标记为实验性功能,可能会改变存储格式。
收录于专题
标签
常见问题
- jj 是什么?
- Jujutsu(jj)是兼容 Git 的版本控制系统,工作副本改动自动记为提交,并记录所有操作以便撤销。 Jujutsu 是一款面向软件项目的版本控制系统,用于获取代码副本、跟踪修改并把改动发布给他人。命令行工具名为 jj。默认存储后端基于 Git 仓库,因此可以与任何 Git 远端拉取和推送,也随时能切回 Git 使用。
- jj 可以免费使用吗?用的什么许可证?
- jj 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- jj 还在维护吗?
- 活跃维护中。jj 最近一次提交是在 2026年11月6日。
- jj 适合用来做什么?
- 希望在现有 Git 仓库上获得更简单工作流的开发者。 需要借助操作日志从误操作中恢复的团队。 将仓库放在 Dropbox 目录中或用 rsync 备份,且需要并发安全的场景。
- jj 怎么安装和运行?
- 按照 README 中链接的官方安装说明安装 jj 阅读官方教程学习基础用法 使用 jj help <命令> 查看任意命令的用法
- 在哪里获取 jj?
- 源代码和安装说明在 GitHub 上:https://github.com/jj-vcs/jj
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
Git 是一个快速的分布式版本控制系统,命令丰富,既提供高层操作,也能直接访问底层内部机制。
6.4万+85 本周2.9万COther维护活跃更新于 昨天
基于 ncurses 的终端文本界面,用于浏览 Git 仓库并按代码块暂存变更。
1.3万+2 本周675CGPL-2.0更新于 25天前
GitHub CLI 扩展,用于管理堆叠分支与堆叠 PR,把大改动拆成一串可独立审查的小 PR。
1750+17 本周97GoMIT更新于 4天前
基于实体(函数、类、键)而非行的 Git 合并驱动,避免独立修改被误判为冲突。
1351+12 本周49RustApache-2.0维护活跃更新于 3天前