git - 已恢复的精选提交的 Git rebase 可能会“丢失”它们
问题描述
我有这段历史:
A---B---C---!BC
/ \
D---E---F---G--------H master
\
B'---C' new-branch
提交B
&C
最初是在顶部的功能分支中创建的,然后在提交中恢复,!BC
然后整个分支合并到 master。提交B'
并C'
已被挑选到新分支。
我现在想变基B'
并C'
掌握,所以结果看起来像这样:
A---B---C---!BC
/ \
D---E---F---G--------H master
\
B'---C' new-branch
但是,运行git rebase master
会产生以下结果:
A---B---C---!BC
/ \
D---E---F---G--------H master
new-branch
正如 git-rebase 文档所述,它在技术上是正确的:
将跳过已在上游接受的具有不同提交消息或时间戳的补丁
但是,从人类的角度来看,这是不对的——我的工作目录缺少来自B
和的更改C
。
我该如何运行git rebase
才能产生“预期的”历史?
解决方案
旗帜--force-rebase
做到了:
git rebase --force-rebase master
推荐阅读
- java - 如何使用 Java 流有条件地设置当前项目值?
- python - 在基类的构造函数中从同一子模块导入其他子类
- javascript - 如何用点和逗号解析数字
- flutter - 断言在 Web 版本上失败,但在 iOS Flutter 上成功
- css - 文本换行时所有元素右对齐
- c++11 - 使用在线编译器时出现 C++ 分段错误,但在 VS Code 中同样有效
- python - Django 3.0 图像:无法在模板中显示图像
- google-apps-script - Google Sheets 电子邮件 - Vlookup 在 PDF 中显示 REF 值
- html - Bootstrap 4网格布局不适用于dompdf
- kubernetes - Nginx 入口控制器 - 调用 Webhook 失败