远离本地回购:Git并忘记大文件

时间:2014-10-07 14:19:43

标签: r git github

我是一个相对的新手,正如你将来看到的那样。所以请原谅我对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跟踪(尽管我不想在本地删除文件),那也没关系。但我无法弄清楚如何实现这一目标。

到目前为止我尝试过的事情:

  1. 首先,我将.RData文件添加到.gitignore文件中。我很快意识到这一点 这对已经被跟踪的文件没有任何作用。
  2. 我使用git rm -r --cached .后跟git commit -am "Remove ignored files",认为这有助于git忘记所有这些巨大的 我忽略的文件。
  3. 继git帮助页面之后,我尝试了git commit --ammend -CHEAD,但我仍然无法推动。
  4. 我试图使用BFG,但我没有达到目标 b / c它显然没有找到任何大于100M的文件。显然我 出了问题,但决定不再追求。
  5. 根据我发现HERE的一些提示,我尝试了git filter-branch --tree-filter 'git rm -r -f --ignore-unmatch *.RData' HEAD。这肯定做了一些事情,但我仍然无法推动。 但是,现在我没有那么庞大的太大文件列表了 2个文件太大(即使其他.RData文件相同 目录不再列出。)
  6. 在我的上一个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的位置?

    非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

我很确定您只需要从.git repo历史记录中删除它们。不只是将它们从最新版本中移除,它们需要从您的回购中存在。

该技术在其他地方有所介绍,请参阅this stackoverflow postthe BFG tool