丢弃没有回滚文件的git commit

  • 本文关键字:文件 git commit git
  • 更新时间 :
  • 英文 :


我有一个Git的repo包含一些大的数据集,我不小心键入了add。因为git总是试图将整个数据集推送到git服务器上。我在这个项目上工作了半年,没有向Github推送任何东西。

现在我想放弃这个提交,只推送我写的代码。但是git不允许我在没有完成最后一次提交之前这样做。我也不想丢失我写的代码。

如何解决?

Git状态

hundred of lines for my previous commit
no changes added to commit (use "git add" and/or "git commit -a")

Git推

Enumerating objects: 2343, done.
Counting objects: 100% (2343/2343), done.
Delta compression using up to 12 threads
Compressing objects: 100% (1795/1795), done.
remote: fatal: pack exceeds maximum allowed size (2.00 GiB)error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8)
send-pack: unexpected disconnect while reading sideband packet
Writing objects: 100% (2341/2341), 2.60 GiB | 5.96 MiB/s, done.
Total 2341 (delta 574), reused 2208 (delta 543), pack-reused 0
fatal: the remote end hung up unexpectedly
Everything up-to-date

我想试试git never,但是它可能会删除我的代码。

有一个工具可以帮助你做到这一点:git filter-repo(链接到github页面)。关于如何安装它,请阅读首页。

在示例一节中有一个指南来做你想做的事情:

部分历史重写

例如,要从主分支中删除名为extraneous.txt的文件:

git filter-repo --invert-paths --path extraneous.txt --refs master

最新更新