2016-03-11 57 views
0

(以防万一它的确与众不同,这是在Github企业)不能推,因为我本地提交的文件过大

我不能更改推出回购,因为我在不知不觉中犯两个过大的文件到我的本地回购。这两个文件超出了github允许的大小。我现在在本地进行了几次落后的承诺。我不关心大文件,并从此删除它们,但git push origin仍然每次都失败。

当我检查github中的最后一次提交时,回购时间落后了10天,这意味着不仅大文件失败,而且整个推送失败。我显然无法推动我的回购。每次我尝试,我得到这个错误:

remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com. 
remote: error: File lib/abc.csv is 482.56 MB; this exceeds GitHub Enterprise's file size limit of 150.00 MB 
remote: error: File lib/xyz.csv is 604.82 MB; this exceeds GitHub Enterprise's file size limit of 150.00 MB 
To https://github.foobar.com/userx/myrepo 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to 'https://github.foobar.com/userx/myrepo' 
  • 我要推我目前的本地回购出到GitHub库。
  • 我根本不在乎过大的文件。我不需要需要推送他们到github。
  • 我的本地回购是github回购之前的许多提交。过大文件的提交并不是最新的。

有没有办法解决这个问题,而不是将我的本地回购一路追回到大文件添加的提交?

+0

git状态告诉你什么? – zee

+0

还有什么git remote -v告诉你 – zee

+0

'git status':我13岁提交原产地/主人。 'git remote -v':列出repo url两次:“origin (fetch)”和“origin (push)”。 –

回答

1

不可以。您必须重建您的历史记录,删除所有包含大文件的提交。

要做到这一点:

git rebase -i origin/master master 

如果你的坏提交只的大文件的添加,删除相应的删除在底垫待办事项文件有关线。

如果您的大文件属于更复杂的提交,请在每个相关行的rebase todo文件中使用“编辑”选项。当重建操作在提交修改后停止时:

git rm bigFile1 bigFile2 
git commit --amend 
git rebase --continue 

终止重定位,必要时解决所有冲突。

最后再次推送。

0

我发现,你可以

git reset --soft <commit>

,其中“承诺”是承诺,你犯了大文件。 (你可以列出你的分支的提交使用Git日志),然后

git rm --cached "largeFileName"

然后提交和推动。

我的理解是软复位会将您更改回到之前的提交而无需更改本地文件。git rm --cached undoes you previous git add“largeFileName”,所以它没有提交提交

git status是一个有用的命令,看看git准备提交什么(当我的大文件最终离开舞台时将其列为绿色删除)

相关问题