git - 删除 git 中已提交的更改
问题描述
我不小心将更改推送到我Dev
现在想要摆脱的分支。不是还原,而是完全删除它们。由于对分支设置了约束Dev
,我不能直接提交到该分支,而是通过拉取请求。这些是我的步骤:我创建了一个基于 的新分支Dev
,称为Dev_Reset
. 然后:
git reset 4db52f3 --hard
HEAD is now at 4db52f3 last_changes_to_keep
git push origin -f
Dev_Reset 分支然后被推送到远程仓库。Dev_Reset
但是,当我创建拉取请求时,没有要合并的差异,因为它表示和之间没有差异Dev
。如果我查看 Visual Studio 中分支的历史记录,我会发现HEADS
(localDev
和Dev_Reset
) 都处于 commit 状态4db52f3
,但由于某种原因,我无法将其推送到我的主Dev
分支。
此外,在历史概览中,我仍然可以看到我想使用git reset xxx --hard
命令删除的所有提交,列在HEADS
. 没有其他分支指向我要删除的任何提交。
我知道 的危险git reset --hard
,但目前我是唯一一个在这个分支上工作的人。如何使所有这些提交消失并将我的主Dev
分支重置为正确的提交?
谢谢
编辑(2020 年 3 月 9 日)正如 Igal S 和 LeGEC 在下面建议的那样,我必须调整 Dev 分支的设置,然后我可以在此处应用我的更改。注意到其他同事提取分支的担忧,我的团队已被告知。目前,最近没有人拉过相应的分支。谢谢您的帮助!
解决方案
从远程分支中删除这些更改的唯一方法是git reset --hard
像您一样执行操作,然后强制将它们推送到远程分支。
假设您的政策允许这样做并且您有权这样做。您正在为远程 git 使用哪个系统?
拉取请求仅用于将提交从分支添加到另一个。我不熟悉任何允许使用拉取请求删除提交(即重写历史记录)的系统
推荐阅读
- ios - 已解决:Firebase Cloud 向 iOS 发送静默推送通知在提示消息时不起作用
- c# - 使用带有 GUID 的 IAggregateFluentExtensions.GraphLookup() 时出现 Mongo DB BsonSerializationException
- flutter - 如何在飞镖/颤振中设置或删除地图标记
- javascript - 添加 X 轴标题会导致 Uncaught RangeError: minimumFractionDigits value is out of range in Chart.js
- java - 每次运行代码时我的文件都会清除 - Java
- c# - 我希望用户定义的字符串与布尔值相关联,以指示字符串是否设置为用户值
- bash - shell脚本中的字符串到整数的转换并返回到字符串
- flutter - 如何使用 timepicker 小部件显示使用 Flutter 的开始和结束时间
- ios - 在不指定 DispatchQueue 的情况下使用 withAnimation 会发生什么
- scala - Spark 强制使用 java.lang.Long 而不是 scala.Long