2013-09-29 3 views
6

내 앱에서 일부 변경 사항을 커밋하려고 시도했지만 개발 로그가 512MB로 너무 큽니다. 개발 로그 파일을 삭제하고 다시 시도했는데 같은 오류가 103.2MB의 로그 크기로 나타났습니다. 나도 같은 오류와 함께 rake log:clear을 시도했다.파일을 삭제 한 후에도 개발 로그 파일이 GitHub의 파일 크기 제한을 초과했습니다.

분명히 개발 로그 파일이 다시 작성되고 있습니다. 나는 결코 로그를 사용하지 않았고 아마 그들을 놓치지 않을 것이다 ... git에 커밋하고 개발 로그를 다시 쓰지 않는 방법이 있는가?

2 files changed, 0 insertions(+), 1096498 deletions(-) 
rewrite log/development.log (100%) 
rewrite log/production.log (100%) 
[master]~/Projects/schoolsapi: git push origin master 
Username: 
Password: 
Counting objects: 26, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (15/15), done. 
Writing objects: 100% (17/17), 6.90 MiB | 322 KiB/s, done. 
Total 17 (delta 7), reused 0 (delta 0) 
remote: Error code: 026c4e06d174bf5b0e51c754dc9459b0 
remote: warning: Error GH413: Large files detected. 
remote: warning: See http://git.io/iEPt8g for more information. 
remote: error: File log/development.log is 103.32 MB; this exceeds GitHub's file size limit of 100 MB 

업데이트 답변 1의 제안을 시도한 후 아래 2 :

문제는 여전히 존재합니다. git repo에서 로그 파일을 제거했고 로컬 컴퓨터에서 .gitignore 파일을 삽입하고 development.rb 파일을 config logger 비트로 업데이트했습니다. 아래의 마지막 두 줄은 development.log 파일이 git 또는 로컬 컴퓨터에 존재하지 않음을 보여줍니다.

master]~/Projects/schoolsapi: git add . 
[master]~/Projects/schoolsapi: git commit -m"Tried config logger per apnea diving" 
[master b83b259] Tried config logger per apnea diving 
2 files changed, 4 insertions(+), 0 deletions(-) 
create mode 100644 .gitignore 
[master]~/Projects/schoolsapi: git push origin master 
Username: 
Password: 
Counting objects: 38, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (23/23), done. 
Writing objects: 100% (26/26), 6.90 MiB | 525 KiB/s, done. 
Total 26 (delta 12), reused 0 (delta 0) 
remote: Error code: e69d138ee720f7bcb8112e0e7ec03470 
remote: warning: Error GH413: Large files detected. 
remote: warning: See http://git.io/iEPt8g for more information. 
remote: error: File log/development.log is 103.32 MB; this exceeds GitHub's file size limit of 100 MB 
[master]~/Projects/schoolsapi: rm log/development.log 
rm: log/development.log: No such file or directory 
[master]~/Projects/schoolsapi: git rm log/development.log 
fatal: pathspec 'log/development.log' did not match any files 
[master]~/Projects/schoolsapi: 

UPDATE 앞서 있었다 여전히 로그/development.log 파일 파일이 있던 커밋

. (이 사람에게 큰 감사) 아래 선택한 답변에서 제공하는이 코드를 사용하여, 문제는 하나의 작은주의해야 할 점으로 수정되었습니다 :

git filter-branch --index-filter 'git rm --cached --ignore-unmatch log/development.log' --tag-name-filter cat -- --all 

주의해야 할 점은 내가 비의 자식의 자동 거부를 대체 할 git push origin +master을 사용했다 있다는 것입니다 빨리 감기 - 업데이트. 내가이 응용 프로그램에서 일하는 유일한 사람이기 때문에 나는 이것을 편안하게했다. 이 질문을 참조하십시오 : 당신이 이전에 체크에서 자식의 repo에 당신의 development.log 파일/추가 한 것

Git non-fast-forward rejected

답변

7

.

제거하고 커밋해야합니다. 일반적으로

git rm log/development.log 
git commit -m "removed log file" 

git rm -r --cached log 
git commit -m "removed log file" 

, 당신은 당신의 .gitignore 파일

echo log >> .gitignore 

에 로그 디렉토리를 넣어해야 완전히 (추가 된 경우 다른 사람에) 모든 로그 파일을 제거 Github은 최근 최대 파일 크기를 100MB로 제한하기 시작했습니다. https://help.github.com/articles/working-with-large-files

편집 : 것 같다

로컬 GitHub의에 밀려되지 않은 이전 커밋이있다.

단순히 development.rbSTDOUT에 기록, 자신의 디스크에 확장 파일을 방지하기 위해

git filter-branch --index-filter 'git rm --cached --ignore-unmatch log/development.log' --tag-name-filter cat -- --all 
+1

+1, 이것은 당신의 repo에서 파일을 없애기 위해해야 ​​할 일입니다.이 파일이 채워지지 않게하려면 내 대답을 확인하십시오. – apneadiving

+0

응답 해 주셔서 감사합니다. 나는이 모든 것을 시도했지만 여전히 같은 오류가 발생합니다. 다른 생각? – tbone

+0

@tbone이 링크 확인 http://stackoverflow.com/questions/17382375/github-file-size-limit-changed-6-18-13-cant-push-now/17415982#17415982 –

3

사이드 대답을 실행 해보십시오 :

config.logger = Logger.new(STDOUT) 

당신은 당신의 서버 페이지에서 로그를하겠습니다, 파일은 더 이상 채워지지 않습니다.

+0

이 제안에 감사드립니다, 많이 주셔서 감사합니다. – tbone

+0

레일즈 서버를 시작할 때 로그를 표준 출력으로 출력하지 않는 <다른 환경>에 문제가있었습니다. 해당 행을 <다른 환경> .rb로 삭제하면 도움이됩니다. 감사. 그러나 로그는 로그 파일과 표준 출력에 있습니다. 나는 상관하지 않고 지적하고 싶었다. 레일 사용 5 –

관련 문제