咒术 VCS 介绍与模式

主要观点:Jujutsu(jj)是用 Rust 编写的新版本控制系统,过去一年作者偶尔有所关注,上周决定尝试,发现其设计一致、简单且令人享受。大部分人用其 Git 后端,可与现有 Git 仓库配合使用。
关键信息

  • Undo 操作:可使用jj undo撤销操作,用jj operation log查看操作日志。
  • Changes(变更):是核心操作对象,可变且 ID 随机生成不变,可修改,指向 Git 提交(修订),默认在主分支或 Git 标签时变为不可变。jj log可查看变更历史和树,变化可标记书签但主要用于推送到远程 Git 服务器。
  • Pattern: git stash(模式:git stash):工作副本是 Change,可通过jj new @-创建新变更,保留当前工作副本。
  • Editing Changes in Weird Places(在奇怪地方编辑变更):可自由编辑可变变更,jj edit <id>可检出并编辑,可用-A-B指定新变更的位置,jj rebase可用于移动变更。
  • Bookmarks(书签):替代分支,创建用jj bookmark create,更新用jj bookmark set,跟踪远程书签用jj bookmark track,添加变更到书签时需手动更新。
  • Merges(合并):创建带有多个父级的变更即可。
  • Conflicts(冲突):以一流方式处理,变更可处于冲突状态,jj statusjj log会提及,可手动或用工具解决,解决后后代变更不再冲突。
  • Revset Expressions(修订集表达式):jj 命令基于修订或修订集操作,有函数和操作符,jj log可接受表达式,文档有详细介绍。
  • Setting Up jj with an Existing Git Repo(用现有 Git 仓库设置 jj):简单,克隆到新目录,运行jj git init --colocate,与 Git 集成良好。
  • Should You Switch?(是否应切换?):切换成本低,易于融入现有工作流程,一天内可适应,使用愉快。
    重要细节:通过各种命令和操作展示了 jj 的特性,如jj log的输出格式、不同操作的示例等,还推荐了学习 jj 的相关文章和文档。
阅读 14
0 条评论