我是一个相对的新手,正如你将来看到的那样。所以请原谅我对git术语的不当使用,我还在学习。
问题简明摘要:我想把我的本地回购放在GitHub上,但我有一些以前跟踪过的文件太大了。
背景 今天早上我有一个本地存储库,其中跟踪了各种文件:R脚本,.RData文件,.csv等等。我决定通过将其推送到GitHub来公开我的存储库。
当我尝试推送时(使用git remote add origin https://github.com/me/repo.git
后跟git push -u origin master
),我意识到我的一些大数据文件对于GitHub来说太大了。我已经决定,如果.RData文件没有被推送到GitHub,并且没有被git跟踪(尽管我不想在本地删除文件),那也没关系。但我无法弄清楚如何实现这一目标。
到目前为止我尝试过的事情:
git rm -r --cached .
后跟git commit -am "Remove ignored
files"
,认为这有助于git忘记所有这些巨大的
我忽略的文件。git commit --ammend
-CHEAD
,但我仍然无法推动。git
filter-branch --tree-filter 'git rm -r -f --ignore-unmatch *.RData'
HEAD
。这肯定做了一些事情,但我仍然无法推动。
但是,现在我没有那么庞大的太大文件列表了
2个文件太大(即使其他.RData文件相同
目录不再列出。)在我的上一个git push -u origin master --force
之后,这是终端打印输出:
Counting objects: 1163, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (1134/1134), done.
Writing objects: 100% (1163/1163), 473.07 MiB | 6.80 MiB/s, done.
Total 1163 (delta 522), reused 0 (delta 0)
remote: error: GH001: Large files detected.
remote: error: Trace: 4ce4aa642e458a7a715654ac91c56af4
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File Results/bigFile1.RData is 166.51 MB; this exceeds GitHub's file size limit of 100 M
remote: error: File Results/bigFile2.RData is 166.32 MB; this exceeds GitHub's file size limit of 100 MB
To https://github.com/me/repo.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://github.com/me/repo.git'
如果你还没有猜到,我真的不知道我在做什么......我基本上都在尝试我能找到的任何代码片段,看看它是否允许我推动。我的所有数据和文件都备份完毕,因此我肆无忌惮地进行了实验。
鉴于我愿意不跟踪巨大的.RData文件,如何将我的本地回购提升到可以将其推送到GitHub的位置?
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
我很确定您只需要从.git repo历史记录中删除它们。不只是将它们从最新版本中移除,它们需要从您的回购中存在。
该技术在其他地方有所介绍,请参阅this stackoverflow post或the BFG tool。