git - “git reset --hard”命令不会删除不必要的提交
问题描述
我正在关注 Udemy 教程,因此我从 GitHub 下载了一个包含 50-60 次提交的存储库。
现在我想跳转到某个提交,例如提交 16,并删除我不需要的提交(在本例中为 17-50)。我绝对确定,我不需要我想摆脱的提交。
因此我做了一个reset --hard certain_hash
将头部放在正确的提交上,但是其他不需要的提交(17-50)仍然存在。
我怎样才能摆脱不必要的提交?
解决方案
如果这些提交 17-50没有被任何本地或远程跟踪分支引用,那么它们将消失。
在您的情况下,它们可能仍被以下引用origin/master
:
git remote remove origin
有点极端,特别是如果您需要稍后推回- 只需强制推送(重置后)就足以(
git push --force
)更新本地跟踪分支和远程分支。
输入git branch -a --contain 96e6c82
检查输出是否为空。
您至少需要这样做git push --force
才能master
仅包含您想要的提交。
推荐阅读
- javascript - 是否有任何 JS 方法仅通过提供月份和年份作为参数来解析日期?
- postgresql - 使用 go-gorm 编写的数据库查询执行更新时,Postgres 数据库中的值“0”(零)未得到更新
- c++ - 使用 QTCreator 集成和运行 OpenDDS
- ios - 在 mac os 中显示带有 MBProgressHUD 的 toast 消息
- android - AutoFitTextureView 捕获的帧在相机预览中不可见
- java - 选择一个文件,通读它,并将其内容附加到 2 个链表
- python-3.x - 使用python减去两个字符串
- ruby-on-rails - Rubocop Lint/Void:在哈希中的 void 上下文中使用的文字
- css - 如何从此svg中删除空白
- javascript - Angular - 使用如何在使用 ng-dynamic-component 动态创建的组件上调用函数