git - 我在将我的分支重新基于最新的主版本之前进行了推送。我该如何解决这个问题?
问题描述
我new-feature
在代码审查中的工作功能分支working-feature
.
我的计划是这样的:一旦working-feature
合并到我们的develop
分支,我会创建git rebase
新的功能分支,以便它基于新版本的develop
.
但是,我在推new-feature
送到 Github 之前忘记运行这个 rebase 命令。所以现在,我的 Pull Request intodevelop
包含已经合并的提交(来自原始working-feature
分支的提交)。这些都在提交列表的开头,然后是来自new-feature
分支的实际提交。
我的问题是:这是一个问题吗?我可以毫无问题地合并此 PR 吗?我可以做些什么来省略已经合并的提交吗?谢谢你。
解决方案
将您的new-feature
提交重新定位到develop
现在:
git rebase --onto develop working-feature new-feature
(如果您不了解--onto
语法,您可能想阅读我的小论文:https://stackoverflow.com/a/68636306/341994。)
然后用力推:
git push --force-with-lease origin new-feature
(我们被告知不要推送共享历史记录,但可以说一个未决的拉取请求分支实际上并未共享。好吧,如果有人将此分支拉到他们的本地,这对他们来说不是很好,但它极不可能,而且并不困难让他们删除分支的本地版本并再次拉取它。)
推荐阅读
- c# - 使用 Windows 窗体处理通知
- node.js - 将 JS 注入到具有匹配文件名的 HTML 页面中
- php - 允许客户在 WooCommerce 中更改订单状态
- node.js - 控制台中的节点打印 [Circular]
- torch - 我找不到使用 torch.autograd.set_detect_anomaly(True) 的就地操作
- javascript - 一旦反应应用程序状态改变,谷歌地图不会更新
- python - 如何更改代码以获取 IoU 值?
- reactjs - 如何使用功能组件和 react-redux 取消订阅 firebase?
- kubernetes - 错误:Kubernetes 集群无法访问:获取“http://localhost:8080/version?timeout=32s”:拨打 tcp 127.0.0.1:8080:连接:连接被拒绝
- excel - 使用 VBA 在用户窗体上生成组合框和编辑文本框