git - git push -f 将不需要的日志留在 bitbucket 中
问题描述
我做了一个提交,推送它,但后来意识到我在代码上犯了一些错误,我做了git reset HEAD~
,然后重新提交push -f
,我发现我的 PR 中有一个额外的日志。我该如何摆脱它?
解决方案
假设我们有一个远程origin
分支master
,当前指向 commit dd61ab32
。我们想删除top
提交。翻译成 git 术语,我们希望master
将 origin 远程存储库的分支强制parent
为dd61ab32
:
git push origin +dd61ab32^:master
git 解释x^
为父级x
和+
强制非快进推送的地方。
如果这是您要在本地删除的最后一次提交,则:需要两个步骤:
git reset HEAD^ --hard
git push origin -f
如果它不是最后一次提交,您可以尝试:
git rebase -i commit_hash^
如果分支已经被推送,则重写历史记录或变基通常是一个坏主意,您可能还更喜欢使用:
git revert commit_hash
推荐阅读
- java - 使用 APACHE JENA 自动检测文件扩展名
- excel - 宏减去多个单元格并输出结果
- mysql - 从 nodered 和 mysql 解析数组结果
- java - 如何将图像从 java-app 发送到 python?
- flutter - 如何在颤振中准备字符串变量格式?
- java - Spring for Kafka 2.3 在运行时使用 KafkaMessageListenerContainer 为特定侦听器设置偏移量
- nuxt.js - 是否可以在加载页面之前和来宾中间件之前设置 state.loggedIn?
- angular - 从 ion-tab-bar ionic 4 中删除白色背景
- apache-kafka - 如何用 KSQL 揭示丢失的事件?
- c# - 混合类型属性序列化为 C# 中的 xml