我有两个分支 A 和 B。我想要做的是在 A 上创建一个新的(合并)提交,并将 A 的当前状态作为父级,它引用 B 描述的文件树,丢弃 A 中的任何内容。基本上是B 应该被压缩成一个提交。
具体的存储库状态由两个独立的分支组成,它们没有共同的祖先(来自两个以前独立的存储库),但描述了相同的内容。现在我想找到一种“git”方式将它们组合在一起。一个基本的解决方案(没有 git)是检查 A 并将 B 的内容复制到工作树中并执行git commit
. 这基本上就是我之前所做的,将第二个存储库的内容传播到第一个存储库。
用 git 来做我试过
git checkout A
git merge --squash B
但不幸的是,它为 A 和 B 之间不同的所有文件产生了合并冲突,这绝对不是我所期望的。
基本上像
git merge --squash -s theirs
应该做的工作,但合并策略theirs
不存在。阅读文档显示了使用类似
git merge -X theirs
这是合并策略的一个选项recursive
。但这仍然会合并非冲突的块。只有冲突的块直接取自theirs
.