2017-12-29 47 views
1

github이> 100MB 파일을 허용하지 않기 때문에 여러 커밋을 로컬에서 수행 했으므로 내가 푸시하려고했던 커밋이 4 개 또는 5 개였습니다. 이제는 할 수 없습니다. 아무것도. 내가 뭘해야하니?파일 크기가 너무 커서 push를 git 할 수 없습니다.

$ git push 
Counting objects: 114, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (96/96), done. 
Writing objects: 100% (114/114), 48.24 MiB | 467.00 KiB/s, done. 
Total 114 (delta 54), reused 0 (delta 0) 
remote: Resolving deltas: 100% (54/54), completed with 10 local objects. 
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com. 
remote: error: Trace: bc3c170ddc8fcb18b4fd112e6036e0f7 
remote: error: See http://git.io/iEPt8g for more information. 
remote: error: File app/release/app-release.apk is 139.72 MB; this exceeds GitHub's file size limit of 100.00 MB 
remote: error: File app/release/app-release.apk is 135.97 MB; this exceeds GitHub's file size limit of 100.00 MB 
remote: error: File app/release/app-release.apk is 105.54 MB; this exceeds GitHub's file size limit of 100.00 MB 
To https://github.com/montao/adventure.git 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to 'https://github.com/montao/adventure.git' 

git status 
On branch master 
Your branch is ahead of 'origin/master' by 8 commits. 
    (use "git push" to publish your local commits) 

nothing to commit, working tree clean 
+1

왜 당신은 github에 apk를 밀고 있습니까 ??? – TheOni

+0

@TheOni 그게 내가 취소하려는거야. 그건 실수 였어. –

+0

[Git 저장소의 모든 커밋 기록에서 파일을 완전히 제거합니다.] (https://stackoverflow.com/questions/307828/completely-remove-file-from-all-git-repository-commit-history) – phd

답변

2

상태를 재설정하고 apk 파일을 포함하지 않고 간단히 커밋 할 수 있습니다.

당신은 단순히

git reset origin/master 

변경 사항을 유지하지만 커밋을 모두 다시 설정하려면 할 수 있습니다.

+0

작동했습니다! 감사. –

1

한순간에, 나는 광산의 레포에 많은 크기의 사진을 투입했다. 다음은 내가 그들을 역사에서 완전히 제거한 것입니다.

먼저 repo 복사본을 만들었습니다. 그래서 뭔가를 망쳐 놨을 때를 대비해서 백업을 했어. 이 단계를 건너 뛰지 않는 것이 가장 좋습니다. :-)

그런 다음 실수로 사진을 추가 한 원래 커밋 바로 전에 대화 형 리베이스 (rebase -i)를 만들었습니다. 나는 사진의 저지를 떨어 뜨렸다.

는 REBASE 후, 나는 또한 .gitignoreapp/releases/를 추가, 귀하의 경우에는
git reflog expire --expire=now --all 
git gc --aggressive --prune=now 

을 달렸다.