7

アプリでいくつかの変更をコミットしようとしましたが、開発ログが 512 MB と大きすぎるというエラーを受け取りました。開発ログ ファイルを削除して再試行したところ、ログ サイズが 103.2MB で同じエラーが表示されました。rake log:clear私も同じエラーで試しました。

どうやら開発ログファイルが書き換えられているようです。私はログを使用したことがなく、おそらくそれらを見逃すことはないでしょう...開発ログを書き換えずに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 リポジトリからログ ファイルを削除し、ローカル マシンで .gitignore ファイルを挿入し、構成ロガー ビットで development.rb を更新しました。以下の最後の 2 行は、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: 

アップデート

log/development.log ファイルがまだ残っている以前のコミットがありました。以下の選択された回答によって提供されたこのコードを使用して(この人に大いに感謝します)、問題は1つの小さな警告で修正されました:

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

注意点は、git push origin +master高速転送以外の更新に対する git の自動拒否をオーバーライドするために使用しなければならなかったことです。私はこのアプリに取り組んでいる唯一の人なので、これを快適に行うことができました。この質問を参照してください:

Git 非早送り拒否

4

2 に答える 2

8

development.log以前にファイルを git リポジトリに追加/チェックインしたようです。

それを削除してコミットする必要があります。

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

一般に、ログ ディレクトリを .gitignore ファイルに配置する必要があります。

echo log >> .gitignore

そして、すべてのログ ファイルを完全に削除します (他のファイルが追加された場合)。

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

Github は最近、最大ファイル サイズを 100 MB に制限するようになりました。https://help.github.com/articles/working-with-large-files

編集:

github にローカルにプッシュされていない以前のコミットがあるようです。

実行してみてください

git filter-branch --index-filter 'git rm --cached --ignore-unmatch log/development.log' --tag-name-filter cat -- --all
于 2013-09-29T20:17:00.237 に答える