无法从 git 提交中删除文件

如何丢弃所有未被推送的 git 提交,然后强制 git 不提交 data/目录中的任何内容?

我试图强制覆盖存储在 github 上的 c9.io 项目的所有更改。我不小心添加了一些 mongodb 数据文件。我试图将 data/目录添加到。吉蒂诺尔。我从 Github 网站上下载了最新消息。但是,当我尝试 git push 时,这些数据/中的顽固文件仍然暂存以便提交。我还尝试了 git 复位、 git rebase、 git clean 和 这个,其中我将 dmpfile.sql 更改为 pi/data/node-login.1。

拜托帮帮我,我已经在这里呆了好几个小时了,我真的很沮丧

Counting objects: 15, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (13/13), done.
Writing objects: 100% (13/13), 150.22 KiB | 92 KiB/s, done.
Total 13 (delta 6), reused 0 (delta 0)
remote: warning: File pi/data/local.0 is 64.00 MB; this is larger than GitHub's recommended maximum file size of 50 MB
remote: warning: File pi/data/node-login.0 is 64.00 MB; this is larger than GitHub's recommended maximum file size of 50 MB
remote: error: GH001: Large files detected.
remote: error: Trace: e6ade98208c08b634ed28aefea36dfbb
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File pi/data/node-login.1 is 128.00 MB; this exceeds GitHub's file size limit of 100 MB
To git@github.com:bobbyg603/goddard.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@github.com:bobbyg603/goddard.git'

。吉蒂诺尔:

lib-cov
*.seed
*.log
*.csv
*.dat
*.out
*.pid
*.gz


data/


pids
logs
results


npm-debug.log
node_modules


.project
.settings

谢谢, 鲍比

37314 次浏览

多亏了克里斯,我才能通过运行以下命令来解决这个问题:

Git filter-Branch-f —— index-filter‘ git rm —— cached —— annon-unmatch pi/data/node-login.0’

Git filter-Branch-f —— index-filter‘ git rm —— cached —— annon-unmatch pi/data/node-login.1’

Git filter-Branch-f —— index-filter‘ git rm —— cached —— annon-unmatch pi/data/local. 0’

git filter-branch -f --index-filter "git rm -rf --cached --ignore-unmatch FOLDERNAME" -- --all

用希望从给定 git 存储库中删除的文件或文件夹替换 FOLDERNAME。

我使用的 BFG 回购清洁剂简单快捷,效果非常好

这对我很有效:

git rm --cached name_of_a_giant_file
git rm --cached name_of_another_giant_file
git commit --amend -CHEAD
git push

资料来源: Github 帮助: 处理大文件

git filter-branch --tree-filter 'rm -rf path/whaever' HEAD

这有一点简单,这是一种从历史中删除和重写它的方法。这就是结果

Rewrite 5ac3045254d33fc5bb2b9fb05dccbdbb986b1885 (61/62) (24 seconds passed, remaining 0 predicted)
Ref 'refs/heads/features_X' was rewritten

现在,我可以推了