从 git 存储库中删除未引用的提交

2023-11-22

我有这样的 git 提交历史记录:

          U
         / 
A---B---C---D---E master

没有任何内容指向提交U,但我知道它的哈希值。如何从我的存储库中完全删除此提交,就好像它从未存在过一样?我是唯一使用此存储库的人。

我尝试使用git rebase,但这可以删除分支的一部分或移动提交,但似乎无法删除单个提交。

If I do git checkout <hash>进而git reset --hard HEAD~1我再也看不到提交了。它实际上已经完全消失了还是仍然隐藏在存储库中?


如上所述here,只需使用

git reflog expire --expire-unreachable=now --all
git gc --prune=now

git reflog expire --expire-unreachable=now --all删除所有无法访问的提交的引用reflog.

git gc --prune=now删除提交本身。

注意力:仅使用git gc --prune=now将不起作用,因为这些提交仍然在引用日志中引用。因此,清除 reflog 是强制性的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 git 存储库中删除未引用的提交 的相关文章

  • git 从存储中删除文件

    我有一个藏匿处 里面有一堆文件 但由于文件冲突 我无法应用我的存储 我已经在我的存储中发现了有问题的文件 我想将其删除 如何从存储中删除单个文件而不破坏整个文件 存储是一次提交 或者实际上是两次甚至有时是三次提交 并且您无法更改提交 那么
  • git tag --contains 如何工作?

    从几天前开始 我一直在尝试确定在哪个版本 由标签指定 中部署了特定修复 由提交指定 这里的一些帖子发布了这一点git tag contains是收集这些信息的方法 但是选项的文档 https git scm com docs git tag
  • 如何从父克隆中过去的提交中获取 git 子模块的关联提交 ID?

    有没有一种方法 除了实际检查父提交之外 还可以根据父克隆中的提交 ID 确定子模块的 SHA 1 提交 ID 我知道我能找到现在与 SHA 1 关联git submodule 这是一个例子 我有一个带有单个子模块的克隆foo上个月情况发生了
  • 将两个单独的功能分支合并到同一个主分支中[重复]

    这个问题已经存在了 我们正在努力发布 2 个远程功能分支 F2 和 F3 我们如何处理F3来创建发布 提案1 简单地合并F3进入开发 提案2 第一次合并开发进入F3 包括F2的变化 然后合并进入发展 这两种方法之间有什么实际差异 是否有客观
  • 从预提交挂钩中排除某些文件类型

    我想要一个预提交 git 钩子来检查 如果可能的话 自动删除 尾随空格 In 让 git 在提交之前自动删除尾随空格 https stackoverflow com questions 591923 make git automatical
  • git checkout HEAD -- 和有什么区别?和 git reset --hard HEAD?

    我已经查看了这个 stackoverflow 链接 但我认为我所要求的之间的细微差别是使用HEAD在结账命令中 因为他们的建议似乎不起作用 git reset hard HEAD 和 git checkout 之间有区别吗 https st
  • 如何在Git中手动合并所有文件?

    我想合并所有文件manually有了 meld 或任何其他 diff 工具 我如何使用 Git 来做到这一点 当我跑步时git mergetool它说no files need merging 所以我想只有当我有冲突时我才能做到这一点 有更
  • 设置单独的遥控器以仅推送和拉动子文件夹

    假设我有两个存储库 repo A and repo B 其中包含一个文件夹 其中的代码与存储库 A 中的代码类似 这实际上如何发生并不重要 但是好吧 让我们假设我刚刚从 A 复制了内容 现在我想要以下内容 就像我在 repo A 中习惯的那
  • 未签出...捆绑安装无法修复帮助!

    https github com intridea omniauth git at master is not checked out Please run bundle install Bundler GitError 那我该怎么办 捆绑
  • 为什么 cmake 在 git commit 后编译所有内容

    假设我有时在 Linux 上使用 cmake 2 8 编译一段代码 我更改了一个文件 my changed file 运行 cmake 并且只构建了这个文件 到目前为止 一切都很好 现在我想提交这个 git add my changed f
  • 无法在 git 上获取 Http 工作

    我在拇指驱动器上使用 gitbash 作为 git 我的防火墙阻止了我 并且想设置我的 git 以进行 http 访问 我使用 github 并且已经看到了有关如何执行此操作的各种信息 但我还不够了解 无法让它为我自己工作 我在 php i
  • 以编程方式将工作项关联到拉取请求

    我可以得到 https www visualstudio com en us docs integrate api git pull requests get a pull request https www visualstudio co
  • 将存储库从 Github 移至 Gitlab

    有没有办法将整个存储库从 Github 移动到 GitLab 对于代码本身来说 只需在 GitLab 上创建一个新的存储库并推送到它即可 Wiki 页面位于 Github 上的单独分支中 并通过 Git 机制进行管理 据我所知 GitLab
  • 从“git diff”中排除文件

    我正在尝试排除一个文件 db irrelevant php 来自 Git diff 我尝试将文件放入db子目录名为 gitattributes与线irrelevant php diff我还尝试创建一个名为 git info attribut
  • 是否有 git-merge --dry-run 选项?

    我正在合并一个可能有很多冲突的远程分支 我怎么知道它是否会发生冲突 我没有看到任何类似的东西 dry run on git merge 如前所述 传入 no commit标志 但为了避免快进提交 也传入 no ff 像这样 git merg
  • 是否可以使用“最小”算法进行交互式添加?

    当从快照计算变更集时 Git 并不总是正确选择块边界 git diff has a diff algorithm允许在这方面进行一些调整的选项 git diff minimal有时会给出比git diff alone 有没有办法获得相同的优
  • 如何让“git status”始终使用短格式?

    我想要git status始终使用短格式 git status short M file1 M dir file2 file untracked3 dir file untracked4 似乎不存在这方面的配置选项 并且git config
  • 在 emacs 的文件中不断出现的这些 ^M 是什么?

    我认为这可能与 TextMate 有关 但我们在一个小团队中工作 并且在 git 中几乎相同的文件的全文件冲突方面遇到了一些问题 在一个分支中 文件的每一行都附加了 M 这是什么神秘的事 M角色应该做什么 它从哪里来 我们的开发人员在 Wi
  • 我是否需要在裸仓库上运行 git gc ?

    man git gc http www kernel org pub software scm git docs git gc html其中没有明显的答案 而且我在谷歌上也没有任何运气 尽管我可能只是使用了错误的搜索词 我明白你应该偶尔跑步
  • Git 将分支从一个远程推送到另一个远程?

    我设置了以下遥控器 git remote korg rorg 以及以下分支 git branch a no branch remotes korg gingerbread remotes korg gingerbread release r

随机推荐

  • 地图加载后显示带标题(注释)的 Pin 图

    我正在开发我的第一个应用程序 在其中我只是尝试单击按钮显示带有图钉的地图 以及该位置图钉上的标题 我能够加载地图视图并让它显示我想要的坐标 但是 当尝试显示图钉和注释时 我遇到了问题 不确定在哪里编码以及如何进行注释以显示引脚 我搜索并看到
  • PrimeFaces 自动完成:项目选择和更改事件

    我需要在更改文本框时触发 ajax 更新 这是一个
  • 当密码存储为哈希值时检索密码

    如果密码存储为哈希值 用户是否可以请求将其密码通过电子邮件发送给自己 有什么方法可以将哈希值转换为具有正确信息的明文值 以及您需要什么信息 如果用户在两个站点上存储了相同的密码哈希值 那么两个站点的密码是否相同 如果您只存储密码的哈希值 则
  • 重新绑定的规则是什么?

    NOTE 我根据旧版本的 Rakudo 问这个问题 正如中所解释的接受的答案 令人困惑的输出是 Rakudo bug 的结果 其中现已解决 我留下了下面 Q 的原始版本以供历史参考 Raku 有时会禁止重新绑定 以下两行 sub f a a
  • 如果我优化大小而不是速度,为什么 GCC 生成的代码速度会快 15-20%?

    我第一次注意到 在 2009 年 GCC 至少在我的项目和我的机器上 如果我优化的话 倾向于生成明显更快的代码size Os 而不是速度 O2 or O3 从那时起我就一直想知道为什么 我已经成功地创建了 相当愚蠢的 代码来显示这种令人惊讶
  • 尝试设置(空)音频设备的采样率时出现错误“!dat”

    我正在尝试播放音频剪辑 使用 AVAudioPlayer 和视频剪辑 使用 MPMoviePlayerController 两者都正常工作 然后我将这些文件签入 SVN 并在另一台 Mac 上将其拉下来 现在 当我运行应用程序 iPad 应
  • 在表中显示约束

    您好 我正在尝试在我的一个表中显示约束 但由于某种原因 我收到消息 未选择行 下面注明的是我创建的表格 Create table Teams TeamID varCHAR2 4 constraint Teams TeamID PK Prim
  • 如何在依赖作业正在构建时阻止 Jenkins 2.x Pipeline 作业

    我的问题相当简单 对于 高级项目选项 下的 Freestyle Jenkins 项目 我可以选择两个配置选项 以帮助防止不同项目之间的冲突 例如 当一个项目更新一组头文件 而另一个项目包含这些头文件时 可能会出现冲突 上游项目构建时进行块构
  • 使用 FQL 进行 Facebook 查询

    获取时 https api facebook com method fql query query Select page id page url 名称 图片 网站 类型 位置 fan count 电话 from page where na
  • 如何在 MVC 5 中使用 Visual Studio 2015 设置 angular-cli?

    我正在寻找一些关于如何在 Visual Studio 2015 中设置和集成 angular cli webpack 的最佳实践和说明MVC 5 不是核心 我意识到这里有一个类似的问题 如何在 Visual Studio 2015 中使用
  • Java/DOM:获取节点的XML内容

    我正在使用 W3C DOM 解析 Java 中的 XML 文件 我陷入了一个特定的问题 我不知道如何获取节点的整个内部 XML 该节点看起来像这样 td b this b is a b test b td 我必须使用什么函数才能得到它 b
  • HTTP 请求至少需要什么?

    我正在尝试使用以下命令向本地服务器发出 GET 命令netcat通过执行以下操作 echo e GET HTTP 1 1 nHost localhost nc localhost 80 不幸的是 我得到了一个HTTP 1 1 400 Bad
  • 是否允许增加结束迭代器?

    是否允许迭代器变量递增it那已经是在end i e auto it v end 一般情况下允许吗 如果不是的话 是不是不允许vector 如果是的话 是 it maybe 幂等的 if it v end 我问 因为我偶然发现了这样的代码 s
  • 如何在networkx中找到图的所有连通子图?

    我正在开发一个 python 应用程序 我想列出所有可能的任何大小的连接子图 并使用 NetworkX 从每个节点开始 我只是尝试使用 itertools 库中的combinations 来查找所有可能的节点组合 但它太慢了 因为它还会搜索
  • DocumentDB REST API:从文档中提取的 PartitionKey 不匹配

    我正在尝试使用 PHP 缺少官方 API 包装器 通过 REST 将 JSON 文档插入到 DocumentDB 中 现在 分区键似乎已成为 DocumentDB 中任何集合的必需项 但我找不到记录的 REST API 我收到以下错误返回
  • Django 路由 - 空路径与其中任何一个都不匹配

    非常基本的问题 我很惊讶我找不到答案 我刚刚开始研究 django 并进行了开箱即用的安装 创建了一个项目并创建了一个应用程序 urls py 的默认内容非常简单 urlpatterns path admin admin site urls
  • 类型错误为空?

    这是我经常看到的 Firebug 中的错误 TypeError gallery nav button is null Break On This Error gallery nav button addClass animated fade
  • Web应用程序使用窗口域帐户进行身份验证

    如果您有一个将在网络内运行的 Web 应用程序 那么它支持 Windows 身份验证 活动目录 是有意义的 使用 AD 安全模型是否有意义 或者我是否可以创建自己的角色 安全模块 某些管理员必须为每个用户进行配置 我以前从未处理过 Wind
  • 将哈希表导出为 CSV,并将键作为列标题

    我有一个脚本来创建一个哈希表 其中用户名作为键 其组的数组作为值 它看起来是这样的 Name Value user1 Domain Users group2 group3 user2 Domain Users group4 user3 Do
  • 从 git 存储库中删除未引用的提交

    我有这样的 git 提交历史记录 U A B C D E master 没有任何内容指向提交U 但我知道它的哈希值 如何从我的存储库中完全删除此提交 就好像它从未存在过一样 我是唯一使用此存储库的人 我尝试使用git rebase 但这可以