git - Git:如何在没有多个冲突解决的情况下重新设置 Squash
问题描述
假设我已经分支了master
。这个分支叫做spaghetti
. 在我的新spaghetti
分支上,最后一次提交是完美的。
如何在master
所有文件都处于与上一次提交时完全相同的状态后创建一个新提交spaghetti
。我不想解决任何冲突。
当我尝试时,rebase -i
我会在提示“我应该采用哪个值”后得到提示。理想情况下,我会rebase -i
告诉它以某种方式从我上次提交中获取所有内容?
我怎样才能做到这一点?
定期变基也可以吗?拔掉那个节点并将其放在主节点之后?
解决方案
如果您想按原样获取最后一个修订版并将其作为另一个分支顶部的新修订版的内容(您只是不关心另一个分支上发生了什么),那么这就是您要做的:
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
推荐阅读
- graph - Gremlin 查询以计算没有特定边的顶点
- bash - 如何将文件的每一行用作 bash 中的输入开关?
- wordpress - 发送邮件的 WP Mail SMTP 插件问题
- html - 带箭头的 U 形 Css
- ruby-on-rails - Ruby on Rails JSON 到模型转换
- raspberry-pi - 提高 Raspberry Pi 的写入/发送振动数据的速度
- react-native - 在材料顶部选项卡导航器上方添加标题。导航不适用于标题图标。道具为空
- java - 通过两次 for 循环迭代处理大量字符串以进行验证
- python - 在 ProperCase 和换行符中提取两个字符串之间的单词
- .net - 如何解决 HTTP 错误 500.0 - IIS10 上的内部服务器错误?