尝试并且未能推送大文件,现在我甚至无法推送自述文件

时间:2018-03-07 05:58:56

标签: git github

我尝试过并且未能将一些大型csv文件推送到githib,并显示一条消息,告诉我文件太大了。 所以,我使用git rm --cached file.csv删除它们然后再次尝试推送。 但是,推送看起来像是试图推送像以前一样失败的同一个大文件。我怀疑大文件仍然以某种形式存在,我想从git中删除它,以便我可以只推送代码文件。

这是我在尝试上述内容后在终端中看到的内容。由于没有什么可推动的(至少那是我的理解,所以我很困惑为什么它的外观和行为就像它时所做的那样,需要花费一段时间来推动,几分钟,大概需要几秒或更短的时间。我最初试图推送大型csv文件。)

git status
 3 files changed, 1814376 deletions(-)
 delete mode 100644 resources.csv
 delete mode 100644 sample_submission.csv
 delete mode 100644 train.csv
Macs-MacBook:donors_choose macuser$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    .DS_Store
    .Rproj.user/
    donors_choose.Rproj
    resources.csv.zip
    sample_submission.csv.zip
    test.csv.zip
    train.csv.zip

nothing added to commit but untracked files present (use "git add" to track)
Macs-MacBook:donors_choose macuser$ git push -u origin master
Counting objects: 17, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (17/17), 389.52 MiB | 4.59 MiB/s, done.
Total 17 (delta 2), reused 0 (delta 0)

目录中有一个自述文件,现在我想做的就是以“你好世界”的意义将它添加到我的新回购中。

终端当前显示上面的代码结束Total 17 (delta 2), reused 0 (delta 0)但是终端窗口没有响应,并且在github上的repo中没有显示任何内容。

EDIT 在几分钟没有响应后,终端窗口返回了以下消息:

  

https://github.com/myusername/myrepo.git! [远程   拒绝]主人 - &gt; master(pre-receive hook拒绝)错误:失败   推动一些参考   'https://github.com/myusername/myrepo.git'

1 个答案:

答案 0 :(得分:0)

此答案假定您最近将该大文件添加到历史记录中,并且您无法成功推送包含该大文件的任何提交。

您遇到的问题是,即使删除大文件并重新启动,该文件仍会出现在您的历史记录中。当你去推送时,该文件将被包含,并且钩子将拒绝你的推送。

也许这里最简单的解决方法是对你的分支进行交互式变换:

git rebase -i HEAD~5

这将显示最近5次提交的列表,从最旧到最新。我假设大文件未添加超过5次提交。

pick u39mask five commits ago
pick 3jd987d four commits ago
pick 9k27dbw three commits ago
pick j1937nd two commits ago
pick wfn83e9 last commit

将所有可能存在大型文件的提交更改为pickedit

edit u39mask five commits ago
edit 3jd987d four commits ago
edit 9k27dbw three commits ago
edit j1937nd two commits ago
edit wfn83e9 last commit

现在保存文件,交互式rebase将开始。在您使用edit标记的每个提交中,rebase将暂停。发生这种情况时,您可以手动删除大文件,然后键入git rebase --continue以继续下一次提交。当所有提交都被重新应用时,rebase结束了,希望你将删除所有令人不安的大文件的痕迹。

修改

如果您不熟悉将在其中打开rebase提交文件的Emacs环境,请按 SHIFT + I 进入插入模式。然后将pick更改为您想要的任何内容,例如edit。完成编辑后,按 ESC 然后按:wq 进行保存并关闭。然后,rebase将开始。