咒术版本控制系统

主要观点:Jujutsu 是一个新的版本控制系统,类似于 Git 前端,底层数据仍存储在 Git 中,其理念是“一切都是提交”,工作副本状态始终是一个提交,带来了很多便利。
关键信息

  • Jujutsu 文档前期细节过多,有替代教程但风格不符合需求,建议自己尝试写介绍/教程。
  • 概述:可将 Jujutsu 视为新 Git 前端,其与 Git 的区别在于交互方式和概念模型,使用时应暂放 Git 知识但可与 Git 生态系统互操作。
  • 大理念:版本控制系统目的是跟踪代码历史,Jujutsu 中工作副本状态即提交,带来多种便利,如jj diff显示提交差异等。
  • 基本工作流程:jj git init --colocate创建.jj目录,jj命令显示最近提交,jj desc -m设置描述,jj new创建新提交。
  • 迭代更改:可直接编辑未提交的更改或使用“squash 工作流”创建新提交。
  • 移动和编辑历史:jj edit <changeid>切换工作副本到现有更改,直接在历史提交上操作。
  • 冲突:历史操作会隐式变基,可能导致冲突,jj 有独特处理方式,冲突解决后相关提交会重新变基。
  • 分支:Jj 没有命名分支,通过提交描述跟踪工作,与 Git 互操作时需要分支,jj 中的“书签”可指向特定提交。
  • 缺失:缺少 VSCode 支持,与 VSCode 在处理冲突时不完全合作。
  • 未来:作者在 Google 工作,可能用于内部版本控制系统,已存在多年,若出错可退回到 Git 仓库。
    重要细节
  • 终端中 change ids 颜色显示在命令中唯一引用所需的前缀。
  • “squash 工作流”中jj squash将新更改并入前一个提交。
  • jj 中冲突提交记录为冲突并在历史中标记,编辑后可解决冲突,相关提交会重新变基。
  • 从 Git 转到 Jj 时需适应没有命名分支的情况。
  • VSCode 与 Jj 在处理冲突时因技术原因不完全合作。
阅读 9
0 条评论