git - git rebase 如何消除先前已合并到 master 上的提交?
问题描述
在我的拉取请求(将分支 X 合并到 master)中,我看到提交 A、B 和 C 已经合并到 master。
我被建议重新设置分支强制推送。
git rebase -i HEAD~3
自从第 4 次提交合并到 master 以来,我就这样做了。然后我用--allow-empty
.
在我的新 PR(将 X 合并到 master)中,我仍然看到旧的合并提交。
我应该如何变基然后推送到我的分支 X?
谢谢!
解决方案
插图或某些git log --decorate --oneline --graph
输出(作为纯文本)可以改善您的问题。我在这里做了一些我认为合理的假设。
您通常不需要使用交互式变基,而您想要的是:
git fetch # make sure origin/* are up to date
git checkout X # get onto your local branch, if needed
git rebase origin/master # copy the commits, except for the merge
那么你的git push
,假设你的分支 X 也在origin
分支上X
,将是:
git push --force-with-lease origin X
该--force-with-lease
选项在一些非常旧的 Git 版本中不可用;如果您有其中之一,请使用 plain -f
,但这会绕过--force-with-lease
提供的安全检查。
推荐阅读
- python - 如何使用 matplotlib 在此条形图的相应条形上方显示这些值?我的尝试不起作用
- pandas - 尽管两个变量都有数据类型对象,但获取 ufunc 'true_divide'
- r - 在多列上应用 Fisher 精确检验
- c++ - std::atomic 作为类成员:使用 boost/python.hpp 时使用已删除的函数错误
- javascript - 单击提交按钮后,布尔玛步骤未进行下一步
- git - git status 忽略换行符和空格的变化
- reactjs - framer-motion ios 9 兼容性
- identityserver4 - Identity Server 4:使用 EntityFramework Core 进行配置和操作数据
- laravel - 提交表单时为 foreach() 提供的参数无效
- fb-hydra - fb-hydra:如何实现 2 个嵌套的结构化配置?