What is it, naokirin?

私の使うGitコマンドまとめ その他編

それほど頻繁には使いませんが、ちょっとしたことで使うコマンドについてまとめます。

git update-index (リポジトリですでに管理しているファイルを無視する)

こちらに関しては以下のリンク先が非常に良くまとまっています。
「既に git 管理しているファイルをあえて無視したい」 - http://qiita.com/usamik26/items/56d0d3ba7a1300625f92

git gc (リポジトリを最適化する)

リポジトリを最適化することができるコマンドです。

Gitを使っていると、どこからも参照がされていないようなコミット、不要なオブジェクトなどができたりします。(これらをDanglingオブジェクトと呼びます。)
たとえば、rebase や インデックスに追加された後に変更され、もう一度インデックスに追加されたファイルときなどに発生します。
Gitではコミットなどはオブジェクトとして生成されているため、不要なオブジェクトが増加するとリポジトリのデータ容量も増加することになります。

そのようなときに、

git gc

とすると、そのような不要なオブジェクトを削除することができます。
ただし、それらは削除されるため、元に戻すことができません。
後述の git fsck でDanglingオブジェクトに必要なものが本当に存在していないのか確認して実行しましょう。

git fsck (リポジトリの正当性を調べる)

Gitのリポジトリの正当性の検証を行うことができるのが

git fsck

です。リポジトリが破損した場合などのチェックに使います。
おもにDanglingオブジェクトが表示されます。Danglingオブジェクトはリポジトリの容量が少し増えるだけで、無害です。

--full

リポジトリの完全な検証を行う場合に使用します。このコマンドの実行には時間がかかります。