远离本地repo:Git,忘记大文件
正如你即将看到的,我是一个相对的新手。所以请原谅我对git术语的拙劣使用,我还在学习 问题的简要总结:我想把我的本地回购放在GitHub上,但我有一些以前跟踪的文件太大了 背景: 今天早上,我在一个本地存储库中跟踪了各种文件:R脚本、.RData文件、.csv文件等等。我决定通过将存储库推送到GitHub,使其公开可用 当我尝试推送(使用git remote add origin)时https://github.com/me/repo.git接着是远离本地repo:Git,忘记大文件,r,git,github,R,Git,Github,正如你即将看到的,我是一个相对的新手。所以请原谅我对git术语的拙劣使用,我还在学习 问题的简要总结:我想把我的本地回购放在GitHub上,但我有一些以前跟踪的文件太大了 背景: 今天早上,我在一个本地存储库中跟踪了各种文件:R脚本、.RData文件、.csv文件等等。我决定通过将存储库推送到GitHub,使其公开可用 当我尝试推送(使用git remote add origin)时https://github.com/me/repo.git接着是git push-u origin master
git push-u origin master
),我意识到我的一些大数据文件对于GitHub来说太大了。我已经决定,如果.RData文件没有被推送到GitHub,也没有被git跟踪(尽管我不想在本地删除这些文件),那就可以了。但我不知道如何才能做到这一点
到目前为止我尝试过的事情:
gitrm-r--cached.
后跟gitcommit-am“Remove-ignored”
文件“
,认为这会帮助git忘记所有这些巨大的
我刚才忽略的文件git commit--ammend
-切德
,但我还是推不动git
筛选器分支--树筛选器'git rm-r-f--忽略不匹配*.RData'
头部
。这确实起了作用,但我还是推不动。
然而,我现在不再是一大堆太大的文件,而是把注意力集中到
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?
任何帮助都将不胜感激。谢谢 我很确定您只需要将它们从.git回购历史记录中删除即可。不仅要从最新版本中删除它们,还需要从您的回购协议中删除它们
其他地方也介绍了这项技术,请参见或。好的,因此我的思路是正确的。为了清楚起见,我必须使用git filter branch-f--index filter'git rm-r-f--ignore unmatch*.RData'HEAD
。因此,不是一个--树过滤器
,而是一个--索引过滤器
。另外,因为我已经做了其中一个,所以我必须添加第一个-f
,以覆盖某种类型的“备份”。