問題タブ [git-gc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - Gitリポジトリが大きすぎます
約12MB相当のコードとアセットを含むプロジェクトがあります。Gitを使用して追跡してきましたが、.git
フォルダが1.83GBを少し超えていることに気付きました。これは、いくつかの小さなファイルと、フォルダーの約1.82GBを構成する1つのパックファイルで構成されています。
私は走りましgit gc --aggressive
たgit gc --prune
。同じサイズです。私はもう試した:
しかし、それでも同じサイズです。私はそれを複製しました(一度は強制的な再パックでローカルに、そしてもう一度Gitから)、しかしそれはまだそれぞれ1.83GBです。それは正常ですか?サイズを小さくする方法はありますか、それとも新しいリポジトリを開始してコードをコピーし、過去のコミットがなくなることを受け入れるだけですか?
git - git gc と git pull がマシンをロックし、終了しない
を実行するgit gc
と、git は最大 99% 完了してからロックアップします。私はそれを一晩中実行させましたが、決して終わらず、進行していないようでした. 通常、すべてがロックされるため、回復するにはマシンをハード リセットする必要があります。マシンが完全に応答しなくなるため、統計を取得できませtop
んhtop
。
私はしばらくその問題を無視することにしました。ただし、今日、 を実行するgit pull
と、git はリポジトリを自動パックすることを決定し、これが同じエラーを引き起こしました。
これが行き詰まる場所です:
これは Fedora 17 上の Qt 4.8 C++ プロジェクトです。8GB の RAM があり、プロジェクトを保持するパーティションは 33G で、27G が使用されています (88% フル)。
この問題の原因は何ですか? マシンに を実行するためのリソースが不足している場合、git gc
自動パックしないように git に指示する方法はありますか?
git - git gc でリパックを実行できませんでした
以下のコマンドを試し、エラーに直面しています。
C:\project\sys\src>git gc
オブジェクトのカウント: 6342699、完了。
警告: 最適でないパック - メモリ不足
致命的: メモリ不足、malloc に失敗しました (239971384 バイトを割り当てようとしました)
エラー: 再パックを実行できませんでした
私が試してみました
git config --global pack.windowMemory 256m
git repack -a -f -d
最新の git 拡張機能を更新する
git gc --aggressive --prune=now
私は非常に多くのオプションを試しましたが、それでもこの問題に直面しています。なぜこのエラーが発生するのですか?
git - git: ローカルで再パックし、再パックされたオブジェクトをプッシュします
ローカル マシンでリパック作業を行い、結果としてパックされたデータベースをリモート リポジトリにプッシュする方法はありますか?
git - 一時的な git 操作に別のパーティションを使用する (git gc)
git
限られたディスク パーティション (サムドライブなど) にリポジトリがあるとします。
現在のパーティションがいっぱいになったために、そのリポジトリへの最後のプッシュが失敗したとしましょう。
git gc
;でスペースを取り戻そうとするとしましょう。その後git gc
も失敗します:
今、同じマシンに、十分なスペースがある別のパーティションがあります。そこでこのレポを複製してそこで実行gc
し、別のパーティションから最初のパーティションにレポをコピーして書き戻すことができることを認識しています。
しかし、私は疑問に思っていました:代わりに、元のパーティションのレポ内でgit
呼び出している間に、書き込む必要のある一時ファイルに「別のパーティション」を使用するように指示する方法はありますか?その結果、操作が完了した後にgit gc
、git
「別のパーティション」の一時ファイルを削除したでしょう。そして、「元のパーティション」レポで必要なすべてのファイルを変更/削除/追加しました(可能であれば、スペースの再利用に影響します)?
git - Git: Git はいつガベージ コレクションを実行しますか?
私は疑問に思っていました: Git はいつガベージ コレクションを実行しますか? 以前はgit gc
手動でガベージ コレクションを開始する必要がありましたが、現在は自動的に行われます。
また、最新の Git バージョンで手動で呼び出す必要はありますか?