git 删除旧的提交

2024-04-01

我犯了一个愚蠢的错误,不小心将一个node_modules文件夹提交到我的本地git,然后将其推送到github。这是一个巨大的文件夹,任何下载我的存储库的其他人也会在旧提交中下载此文件夹。我一直在尝试删除提交rebase --onto and rebase -i没有运气。这就是我的git log好像。

$ git log --oneline
44549c5f (HEAD -> alex/matUI, origin/alex/matUI) fighting with gitignore
a5a5a79c changed ui to material   ##<---- remove me!
dbec4ab3 converting to material ui      ##<---- remove me!
cd4352f6 (origin/master, origin/HEAD, master) Merge pull request #1 from notsmart/addFullstack
a058bf1e moved files to new repo
80c82607 Added README.md

您将如何删除这些提交?


你必须做两件事:

  1. 本地删除这些提交
  2. 用力推动它们覆盖原点上的分支

编辑:实际上备份那些将首先删除的文件,因为此方法会将它们从文件系统中删除。

First:

git rebase -i HEAD~4

现在您有一个打开的编辑器,其中的行与您编写的内容类似。删除包含您不需要的提交的行。保存并退出编辑器。

Check git log如果它是正确的。

Then:

git 推 -f

解释:

首先,您启动了交互式历史记录编辑会话。您在编辑器中有以下可能的选项,已注释掉。您可以执行很多操作,例如通过删除行来删除提交、将它们压缩在一起、通过重新排序行来重新排序等。

然后删除提交行并保存。发生的事情是 git 尝试创建新的提交链来应用您所需的更改。实际上创建了新的提交(部分提交链接到前一个提交),因此已更改的提交有新的哈希值(因为从技术上讲它们是新的)。您将看到 origin/alex/matUI 不再在您的头上(在git log).

最后你用力推了。这会用当前的 alex/matUI 覆盖 origin/alex/matUI。这实际上会覆盖您的 HEAD 指向的任何分支,并与 origin 上的分支绑定(您的 alex/matUI 与 origin/alex/matUI 绑定,这不是魔法,它是您手动创建或创建的显式绑定拉/克隆时)。通常情况下push是保守的,只允许在分支提示之后添加。-f力量通过那个。使用卢克的力量:)

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

git 删除旧的提交 的相关文章

随机推荐

  • 单独运行时单个规范通过,但运行所有规范时失败

    我的 foo controller spec rb 中有 30 个规范 当我使用规范运行整个文件时 我得到 4 个失败和 2 个待处理 当我单独运行 4 个失败的规范时 其中 3 个仍然失败 但其中一个通过了 起初我认为这是一个数据库问题
  • C++ New 与 Malloc 用于对象的动态内存数组

    我有一个 Bullet 类 它的构造需要几个参数 但是 我使用动态内存阵列来存储它们 我正在使用 C 所以我想通过使用 new 运算符来分配内存来符合它的标准 问题是当我分配数组时 new 运算符要求构造函数参数 而当时我没有 我可以使用
  • 从表中删除*不起作用[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试删除all rows从表中但它不起作用 当我做echo mydb gt error 它给了我以下内容 You have an e
  • Node-PerfectAPI vs Restify.js vs ExpressJS vs Node-APIServer [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我是 ExpressJS 的新手 我想为我的服务创建 API 该服务将直接由其他服务器使用 并且一部分也由移动应用程序 浏览器使用 我刚刚发现了
  • Dagger 和 mvp - 演示者是否应该使用 dagger 进行注入

    我开始认为在mvp中 匕首不应该在presenter中使用 构造 dagger 的常用方法是使用全局组件并具有用于确定图形范围的子组件 该全局组件通常在创建 appmodule java 类时将 applicationContext 作为参
  • 如何在 Scala 中模拟“一次分配”变量?

    这是一个后续问题我之前的初始化变量问题 https stackoverflow com questions 4400926 can i define method private fields in scala 假设我们正在处理这样的上下文
  • Android Profiler 未出现在 Android Studio 中

    我想分析我的设备中的内存消耗 但我没有找到Android 分析器Android Studio 中的选项卡如下所示 请问谁能帮我显示这个选项卡 如果你看一下顶部菜单 你会看到个人资料图标单击它 它将启动您的应用程序并附加配置文件 请参阅下面的
  • Spark - Scala - saveAsHadoopFile 抛出错误

    我想解决该问题 但无法进一步进行 有人可以帮忙吗 import org apache hadoop mapred lib MultipleTextOutputFormat class KeyBasedOutput T gt Null V l
  • iOS 8 SpriteKit 在从块/操作中添加或删除子项时崩溃

    从 iOS8 开始 我的游戏突然开始崩溃 经过一番调试 我发现游戏在以下两个地方崩溃 sparkNode runAction SKAction sequence Some actions and finally SKAction remov
  • 在 Ruby 中读取文件的第一行

    我想读书only以最快 最简单 最惯用的方式使用 Ruby 来编写文件的第一行 最好的方法是什么 具体来说 我想从我最新的 Capistrano 部署的 Rails 目录中的 REVISION 文件中读取 git commit UUID 然
  • C# 字符串到长指针

    我正在使用 C 中的应用程序 需要向 C 应用程序发送消息 我导入了 DllImport user32 dll public static extern IntPtr SendMessage int hWnd handle to desti
  • jar 文件损坏

    我使用 eclipse 在 Windows 7 中创建了一个 jar 文件 当我尝试打开 jar 文件时 它显示 jar 文件无效或损坏 谁能告诉我为什么 jar 文件无效 当您在 Windows 资源管理器中双击 JAR 文件时会发生这种
  • Asio 协程在使用右值参数时表现不佳?

    我可能做了一些明显错误的事情 但为什么会在 MSVC 上打印垃圾 include
  • 如何使用_com_ptr_t?

    假设我有一个班级拥有D3DDevice class Thing public Thing D3D11CreateDevice device Thing device gt Release private ID3D11Device devic
  • Android Sqlite 字符串的最大长度?

    关于这个问题 Android 上的 SQLite 如何处理长字符串 https stackoverflow com questions 3068180 how sqlite on android handles long strings 它
  • 调用带有窗口作用域说明的函数 (0, function(){})()

    我很好奇为什么这有效 var c d function myFunc console log this window var a b function console log this a 0 c d c d a b 控制台输出 True
  • javascript - 根据多个属性查找数组中的唯一对象

    我需要根据以下两个属性从数组中找到唯一的对象 当 class 和 fare 匹配时 我需要提取唯一值并将它们放入结果数组中 Source var arr class second fare a class second fare b cla
  • intellij 连接到 http://127.0.0.1:8888 被拒绝

    我添加到我的 gradle build 2 依赖项 compile com google http client google http client compile com google http client google http c
  • 公式在 Google App 脚本控制台中有效,但在电子表格中返回身份验证错误

    我为我的一个电子表格创建了一个自定义公式 它获取两个日期参数并返回特定 Google Analytics 事件的唯一事件总数 当我测试我的代码时 它在 Google Apps 脚本中完美运行 但是当我尝试在关联的电子表格中使用相同的公式时
  • git 删除旧的提交

    我犯了一个愚蠢的错误 不小心将一个node modules文件夹提交到我的本地git 然后将其推送到github 这是一个巨大的文件夹 任何下载我的存储库的其他人也会在旧提交中下载此文件夹 我一直在尝试删除提交rebase onto and