1. ホーム
  2. ギット

[解決済み】Git GUIが参照する「ルースオブジェクト」とは何ですか?

2022-04-04 06:20:18

質問

を開くと Git GUI というポップアップメッセージが表示されます。 loose objects . した。 git gc というメッセージが表示され、それが削除されました。

とは? loose objects また、どうすればこのような事態を防ぐことができるのでしょうか?

どのように解決するのですか?

SHAで言うところのオブジェクト(ブロブ、ツリー、コミット)-。 810cae53e0f622d6804f063c04a83dbc3a11b7ca に格納されます。

.git/objects/81/0cae53e0f622d6804f063c04a83dbc3a11b7ca

( 最初の2文字の分割は、すべてのオブジェクトが同じディレクトリに保存されるわけではないので、ファイルシステムのパフォーマンスを向上させるためです)

上記のように格納されたオブジェクトをルーズオブジェクトと呼びます。

レポを立ち上げた当初は、ほとんどがルースオブジェクトです。数が多くなると効率が悪くなるので、パックファイルに格納されます。このようなオブジェクトをpacked objectsと呼びます。

 git gc

は、オブジェクトを梱包するために実行するものです(通常は、不要なオブジェクトや数週間前の緩いオブジェクトも削除され --prune=<date> オプションを使用すると、不要になったルースオブジェクトを強制的に削除することができます。コミットを修正するときのように。古いコミットオブジェクトはもう必要ありません。)