从 GIT 删除文件提交并保留更改

问题描述 投票:0回答:1

我一直在尝试推送这 4 次提交,结果发现由于其中一个文件(PDF)的大小而无法实现。我已经安装了 git LFS 并添加了对该大文件的跟踪(gut LFS 跟踪 *.pdf),但我仍然遇到相同的错误。 我尝试寻找如何从提交中删除文件,但找不到任何清晰简洁的内容。如果我做错了,我不想重置头然后失去我的提交。 关于这两个选项中的任何一个(正确使用 LFS,并从所有四个提交中删除文件)的任何指针或信息将不胜感激。

枚举对象:863,完成。 计数对象:100%(863/863),完成。 使用最多 8 个线程的增量压缩 压缩对象:100% (758/758),完成。 写入对象:100% (834/834),245.10 MiB | 2.91 MiB/s,完成。 总计 834(增量 111),重复使用 0(增量 0),包重复使用 0 远程:解析增量:100% (111/111),用 7 个本地对象完成。 远程:错误:跟踪:3c5c28a3d91ced 远程:错误:请参阅 https://gh.io/lfs 了解更多信息。 远程:错误:文件 TI - Code/simplelink_msp432p4_sdk_3_40_01_02.run 为 214.80 MB;这超出了 GitHub 的文件大小限制 100.00 MB 远程:错误:GH001:检测到大文件。您可能想尝试 Git 大文件存储 - https://git-lfs.github.com。 到https://github.com/YYYYY/Autonomous-Craft-2D.git ! [远程拒绝] main -> main(预接收挂钩被拒绝) 错误:无法将一些参考推送到“https://github.com/YYYYY/Autonomous-Craft-2D.git”

我确实知道之前有人问过这个问题,但我对同一个文件有 4 次提交,而且我需要返回的不仅仅是一两次提交,我需要遍历所有提交而不影响其他任何内容。

谢谢您的帮助

git file commit
1个回答
0
投票

从所有提交中删除文件:

使用交互式变基:

  1. 运行以下命令启动交互式变基,编辑最后 4 次提交。

git rebase -i HEAD~4

    对于包含该文件的每个提交,
  1. pick
    更改为
    edit

  2. 对于每个编辑的提交:

git ls-files --cached(查看缓存的文件和路径)

git rm --cached“路径/到/文件”

git commit --amend(使用正确的提交消息,例如“已删除文件 x”)

  1. 继续变基:

git rebase --继续。

© www.soinside.com 2019 - 2024. All rights reserved.