我试图将我的项目推送到github,并收到以下错误:
Counting objects: 87, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (78/78), done.
Writing objects: 100% (87/87), 50.25 MiB | 1.14 MiB/s, done.
Total 87 (delta 32), reused 0 (delta 0)
remote: warning: File example-attractor/bin/example-attractor_debug.ilk is 51.19 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: f711bd940689c3c64a38c283877b86f8
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File example-attractor/example-attractor.sdf is 103.62 MB; this exceeds GitHub's file size limit of 100.00 MB
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs
好的,没什么大不了的。我已将*.sdf
和*.ilk
添加到我的.gitignore
,删除并添加了我的所有文件,并通过git ls-files
检查了我的跟踪文件:
.gitignore
example-attractor/README.md
example-attractor/addons.make
example-attractor/example-attractor.sln
example-attractor/example-attractor.vcxproj
example-attractor/example-attractor.vcxproj.filters
example-attractor/icon.rc
example-attractor/src/main.cpp
example-attractor/src/ofApp.cpp
example-attractor/src/ofApp.h
大!这些文件已从跟踪中删除。我试着再次推送到github ......得到了同样的错误。我跑git status
并且没有变化:
On branch master
Your branch is ahead of 'origin/master' by 3 commits.
(use "git push" to publish your local commits)
nothing to commit, working directory clean
我对现在该做什么感到困惑!为什么git仍然试图推送无法跟踪的文件?
答案 0 :(得分:3)
最可能的解释是您在之前的3次提交中之一提交了该文件。您需要做的是将它们从中删除。通过执行git rebase -i origin/master
来完成此操作。这将带来一个包含所有这些提交的编辑器。对于所有三次提交,将“pick”替换为“e”,保存并关闭编辑器。 Git现在会在每次提交后暂停,此时您可以从索引中删除该文件,执行git commit --amend
,然后git rebase --continue
。那你应该没问题。
答案 1 :(得分:1)
大!这些文件已从跟踪中删除。
从未来跟踪,是的。但是您仍然在分支master
的本地历史记录中提交了提交。
为什么git仍然试图推送未被跟踪的文件?
当你推动一个分支时,它所有尚未放在遥控器上的祖先提交也被推到那里。
我很困惑现在要做什么!
从分支的历史记录中删除不需要的文件,在git rebase -i origin/master
分支上like David suggests master
或with git filter-branch
。在任何一种情况下,请在更改任何历史记录之前备份您的存储库。