Git Gui:「このリポジトリには現在約320個のルーズオブジェクトがあります」を永続的に取得しています。


90

特定のプロジェクトでGitGuiを起動するたびに、次のメッセージが表示されます。

このリポジトリには現在、約320個のルーズオブジェクトがあります。

ここに画像の説明を入力してください

次に、[はい]をクリックすると、次のダイアログが表示されます。

ここに画像の説明を入力してください

問題は、Git Guiをもう一度開くと、まったく同じメッセージが表示されます。これも約320個のルーズオブジェクトです。[はい]をクリックしてもまったく効果がなかったかのようです。


の出力を投稿できますgit count-objects -vか?
CBベイリー


5
@TheCodeArtistありがとう、私はそこで答えを見つけました。このコメントのgit gcように、コマンドラインから明示的に実行することは私にとってはうまくいきました
sashoalm 2014年

回答:


82

'git gui'を実行しているときに「LooseObject」ポップアップをスキップする方法が受け入れられた答えで示唆しているように、単にポップアップをスキップするだけで、Gitがパフォーマンスの問題の可能性をあなたに伝えているという事実を見落としています。これは、コマンドラインから次のコマンドを実行することで修正できるはずです。

cd path/to/your/git/repo
git gc --aggressive

の出力からgit help gc

ファイルリビジョンの圧縮(ディスク容量を減らしてパフォーマンスを向上させるため)や、以前のgit addの呼び出しから作成された可能性のある到達不能オブジェクトの削除など、現在のリポジトリ内で多数のハウスキーピングタスクを実行します。

ユーザーは、各リポジトリ内でこのタスクを定期的に実行して、良好なディスクスペース使用率と良好な動作パフォーマンスを維持することをお勧めします。

-攻撃的

通常、git gcは非常に高速に実行され、ディスクスペースの使用率とパフォーマンスは良好です。このオプションを使用すると、git gcはリポジトリをより積極的に最適化できますが、時間がかかります。この最適化の効果は永続的であるため、このオプションはたまにしか使用する必要がありません。数百のチェンジセットごとかそこら。

これにより、プロンプトがしばらく表示されなくなります。


19
奇妙なことにgit gc、コマンドラインから実行するだけで修正されました。かもしれgit guiなどの実行に何かgit gc --extra-unaggressive:)
sashoalm

38
git pruneそうでgit gcないときにそれを修正するようです。
Mahn 2015

1
通常、--aggressive;で実行することは望ましくありません。これによりgit、デルタが再計算されますが、これは通常、非生産的で非常に時間がかかります。参照この記事--themanページが誤解されています。git gcこの場合、おそらく単純なもので十分です。
Jeff Clites 2015

16
--prune=allメッセージを取り除くために使用しなければなりませんでした。どちらもgit gcコマンドラインでもオプションの--aggressive--pruneトリックをしました。
DAW

1
@JeffClitesあなたが参照している記事は(この日付の時点で)11歳であり、「このため、-aggressiveはおそらくマンページから削除され、しばらくの間文書化されていない機能として残されます。」と述べています。さらに掘り下げることなく、壊れたメッセージがまだそこにあるのは奇妙に思えます。記事が書かれたのと同じように動作が変更された可能性はありますか?
パイプ

3

私はコマンドを使用します:

git gc --prune = now

完了後、緩いオブジェクトの警告が多すぎることはありません。

参照元:https//git-scm.com/docs/git-gc


1
これが私のために働いた解決策だったと言わなければなりません。不思議なことに、git gc --aggressive警告を削除しませんでした(また、UIをクリックすることもしませんでしたgit gc。これは単純な実行のようです)。
セラフィン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.