問題タブ [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.

0 投票する
1 に答える
7233 参照

git - Gitリポジトリが大きすぎます

約12MB相当のコードとアセットを含むプロジェクトがあります。Gitを使用して追跡してきましたが、.gitフォルダが1.83GBを少し超えていることに気付きました。これは、いくつかの小さなファイルと、フォルダーの約1.82GBを構成する1つのパックファイルで構成されています。

私は走りましgit gc --aggressivegit gc --prune。同じサイズです。私はもう試した:

しかし、それでも同じサイズです。私はそれを複製しました(一度は強制的な再パックでローカルに、そしてもう一度Gitから)、しかしそれはまだそれぞれ1.83GBです。それは正常ですか?サイズを小さくする方法はありますか、それとも新しいリポジトリを開始してコードをコピーし、過去のコミットがなくなることを受け入れるだけですか?

0 投票する
2 に答える
5780 参照

git - git gc と git pull がマシンをロックし、終了しない

を実行するgit gcと、git は最大 99% 完了してからロックアップします。私はそれを一晩中実行させましたが、決して終わらず、進行していないようでした. 通常、すべてがロックされるため、回復するにはマシンをハード リセットする必要があります。マシンが完全に応答しなくなるため、統計を取得できませtophtop

私はしばらくその問題を無視することにしました。ただし、今日、 を実行するgit pullと、git はリポジトリを自動パックすることを決定し、これが同じエラーを引き起こしました。

これが行き詰まる場所です:

これは Fedora 17 上の Qt 4.8 C++ プロジェクトです。8GB の RAM があり、プロジェクトを保持するパーティションは 33G で、27G が使用されています (88% フル)。

この問題の原因は何ですか? マシンに を実行するためのリソースが不足している場合、git gc自動パックしないように git に指示する方法はありますか?

0 投票する
0 に答える
7977 参照

git - git gc でリパックを実行できませんでした

以下のコマンドを試し、エラーに直面しています。

C:\project\sys\src>git gc

オブジェクトのカウント: 6342699、完了。

警告: 最適でないパック - メモリ不足

致命的: メモリ不足、malloc に失敗しました (239971384 バイトを割り当てようとしました)

エラー: 再パックを実行できませんでした

私が試してみました

  1. git config --global pack.windowMemory 256m

  2. git repack -a -f -d

  3. 最新の git 拡張機能を更新する

  4. git gc --aggressive --prune=now

私は非常に多くのオプションを試しましたが、それでもこの問題に直面しています。なぜこのエラーが発生するのですか?

0 投票する
1 に答える
424 参照

git - git: ローカルで再パックし、再パックされたオブジェクトをプッシュします

ローカル マシンでリパック作業を行い、結果としてパックされたデータベースをリモート リポジトリにプッシュする方法はありますか?

0 投票する
1 に答える
707 参照

git - 一時的な git 操作に別のパーティションを使用する (git gc)

git限られたディスク パーティション (サムドライブなど) にリポジトリがあるとします。

現在のパーティションがいっぱいになったために、そのリポジトリへの最後のプッシュが失敗したとしましょう。

git gc;でスペースを取り戻そうとするとしましょう。その後git gcも失敗します:

今、同じマシンに、十分なスペースがある別のパーティションがあります。そこでこのレポを複製してそこで実行gcし、別のパーティションから最初のパーティションにレポをコピーして書き戻すことができることを認識しています。

しかし、私は疑問に思っていました:代わりに、元のパーティションのレポ内でgit呼び出している間に、書き込む必要のある一時ファイルに「別のパーティション」を使用するように指示する方法はありますか?その結果、操作が完了した後にgit gcgit「別のパーティション」の一時ファイルを削除したでしょう。そして、「元のパーティション」レポで必要なすべてのファイルを変更/削除/追加しました(可能であれば、スペースの再利用に影響します)?

0 投票する
1 に答える
1707 参照

git - Git: Git はいつガベージ コレクションを実行しますか?

私は疑問に思っていました: Git はいつガベージ コレクションを実行しますか? 以前はgit gc手動でガベージ コレクションを開始する必要がありましたが、現在は自動的に行われます。

また、最新の Git バージョンで手動で呼び出す必要はありますか?