首页 > 解决方案 > Git:如何在没有多个冲突解决的情况下重新设置 Squash

问题描述

假设我已经分支了master。这个分支叫做spaghetti. 在我的新spaghetti分支上,最后一次提交是完美的。

如何在master所有文件都处于与上一次提交时完全相同的状态后创建一个新提交spaghetti。我不想解决任何冲突。

当我尝试时,rebase -i我会在提示“我应该采用哪个值”后得到提示。理想情况下,我会rebase -i告诉它以某种方式从我上次提交中获取所有内容?

我怎样才能做到这一点?

定期变基也可以吗?拔掉那个节点并将其放在主节点之后?

标签: git

解决方案


如果您想按原样获取最后一个修订版并将其作为另一个分支顶部的新修订版的内容(您只是不关心另一个分支上发生了什么),那么这就是您要做的:

git checkout master git checkout spaghetti . git commit -m "we look just like spaghetti"

结帐时请注意不要遗漏点

这不是一件轻而易举的事情,因为在 master 与意大利面条不同后,您基本上会恢复您在 master 上所做的一切。

另一种方式(顺便说一句),也许更优雅一点:

git checkout --detach spaghetti git reset --soft master git commit -m "Committing what we have at the tip of spaghetti on master" git branch -f master # repoint master git checkout master


推荐阅读