我在一家本地分支机构工作,并推动了10次提交。现在我想将这些提交合并到主分支,但它必须是包含所有10次提交的一个提交。
我读过关于重新定位的文章,但据我所知,这是在改写当地分部的历史。
发布于 2017-07-27 18:40:41
这叫做壁球合并。不过,它根本不是真正的合并:合并--更准确地说,是合并提交--以" merge“作为形容词,或者在我们将其缩写为"a merge”(A Merge)时,将它缩写为“a merge”--带有两个(甚至更多,但两个以上)的父提交--因此连接了前面两个不同的历史。在Git中,"squash“使用所有合并操作”merge作为动词“进行普通的单亲提交--”merge作为动词“常规合并将执行-that,但故意不将结果记录为合并。
换句话说,要合并为动词,但是得到非合并作为名词的普通提交,您可以使用Git的"squash merge":
git merge --squash <otherbranch>这完成了合并的所有工作,但随后进行了普通的提交。
但是,由于某些原因,--squash也会自动打开--no-commit,因此在南瓜操作完成后,您必须自己运行git commit。
(您可以使用不带--no-commit的--squash,以获得相同的“合并后暂停为动词”的效果。在本例中所做的提交是真正的合并提交。)
请注意,一旦你做了一个普通的承诺,做更多的工作,你已经压扁的分支很少有任何好处。通常最明智的做法是放弃(并最终删除)该分支。
https://stackoverflow.com/questions/45358577
复制相似问题