将一份分离独立的 git 仓库 合并到 原来的 git 仓库,并且压缩历史提交。
merge --square
不就是可以合并并压缩提交吗!正常操作的确没问题,但是现在相当于是两个 git 仓库,尝试一下会发现合并失败 fatal: refusing to merge unrelated histories
,拒绝合并不相关的历史
直接 rebase 可以合并,但是会保留每次的提交,加上参数 -i
可以选择 square 压缩,但是有没有想过几十上百个 commit 要操作到什么适合
那么有没有一种方法可以像 rebase -i
+ square 的效果,答案是有很多的
直接删除 git 管理,利用当前代码重新 git init
+ commit 一次,就相当于压缩所有提交的效果(缺点是本地提交历史也会不见了),再关联上原有 git 仓库,此时直接 rebase
先直接 rebase,切换到原有仓库最后的 commit 节点,再用 git merge --square
孤立分支(实现压缩所有提交) + rebase
同时会将目标分支所有提交复制到新分支合并重新提交一次,
此分支从原来的 commit 线分离并且会压缩所有的 commit,
从 feature/xxx 分支创建一个孤立分支 orphan/xxx, 执行以下代码将会要求重新 commit 一次 (SourceTree 上显示历史暂时是空的,不用惊慌,commit 之后就显示正常了)
git checkout --orphan orphan/xxx feature/xxx
再 commit + rebase 即可