起因
因为vscode目前(2025/9/1)没有好用的jujutsu diff插件,jjk插件在关闭git后是无法在图形界面去做git diff的。
有种特殊情况:当一个相同的change ID,分叉出多个不同的commit ID。解决冲突的最快方法是什么?
过程
先阅读一下如何处理冲突: https://steveklabnik.github.io/jujutsu-tutorial/branching-merging-and-conflicts/conflicts.html
说实话,这本教程太长了,我只想快速上手,版本管理工具学起来都比较绕,必须多用多查,才能掌握。
jj log
这是一种很麻烦的情况,我们已经 过度脱离 远程分支了。
@ nsvypnmz 2025-08-31 00:03:24 main* 12c1b924
│ (empty)
○ qzwzwxtl 2025-08-31 00:01:55 git_head() 512ed314
│
○ urtwuxoz 2025-08-30 23:19:21 77afa126
│
○ yutonnnr?? 2025-08-30 07:16:16 b3f1260f
│
│ ◆ yutonnnr?? 2025-08-29 07:53:05 main@origin c0e9f1ed
├─╯
◆ zzzzzzzz root() 00000000
main*是当前未存储的提交
git_head()是git的HEAD指针,比jj @慢一个commit
main@origin是远程git仓库的最新提交
有一个相同的change ID,分叉出2个不同的commit ID。yutonnnr→b3f.../c0e...
这期间,我试了很多指令,但都越来越绕。当你觉得无力回天时,可以用jj op log查看历史操作,然后用jj op restore <op_id>来撤销操作。
jj op restore VS jj undo
- jj undo: 撤销一次,若再次
jj undo,会反撤销。如此在 撤销/反撤销 之间循环。 - jj op restore: 恢复任意时刻的状态
目前我用到jj op restore比jj undo更频繁。
