我尝试过并且未能将一些大型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'
答案 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
将所有可能存在大型文件的提交更改为pick
至edit
:
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将开始。