SuperAPI AI 工具集

jj-merge-repos

编程与开发

查看项目

更新于 10-15 21:37

技能介绍

用途:本技能提供把两个相互独立的 Jujutsu(jj)仓库合并成一个统一仓库的操作指南,适用于合并无关仓库、从分叉历史(本地与远程重写)中恢复、拼接提交历史,以及将整个仓库 rebase 到另一个仓库之上。

主要能力:所有 jj 仓库共享一个公共空根提交;当添加另一个仓库作为 remote 并 fetch 后,会从该根得到两条分叉的提交链。随后既可以删除其中一条链,也可以把一条链 rebase 到另一条之上完成拼接。

必要用法:添加并获取另一个仓库使用 jj git remote add other-repo <url-or-path> 与 jj git fetch --remote other-repo;用 jj log 查看两条链,可加 --all 查看全部提交。只保留一条历史时用 jj abandon <commit-range>;拼接时用 jj rebase --source <root-of-chain-to-move> --destination <tip-of-other-chain>。从分叉历史恢复时先 jj git remote add origin <url> 再 jj git fetch,然后 abandon 不想要的本地链或把本地工作 rebase 到远程。合并两个无关项目时进入 repo-a,把 repo-b 加为 remote 并 fetch,再 jj rebase --source <repo-b-root> --destination main。清理后可运行 jj git push 更新远程。

限制:合并文件有重叠的无关仓库时很可能出现冲突,需在 rebase 过程中解决;应事先判断是否真的需要合并后的历史,还是只需要文件。其余收费、价格、平台等信息暂未提供。