Git
Chapters ▾ 2nd Edition

A3.11 Appendix C: Gitのコマンド - システム管理

システム管理

Gitリポジトリのシステム管理をしていたり、大々的に何かを修正したい場合、Gitにはそれを支援するシステム管理用コマンドがいくつかあります。

git gc

git gc コマンドは、リポジトリ上で “ガベージコレクション” を実行し、データベース上の不要なファイルを削除するとともに、残ったファイルをより効率的なフォーマットへ詰め込み直します。

このコマンドは通常バックグラウンドで自動的に実行されますが、お望みなら手動で実行することもできます。メンテナンス では、このコマンドのいくつかの例を見てきました。

git fsck

git fsck コマンドは、内部データベースに問題や不整合がないかチェックするのに使用されます。

このコマンドは、データリカバリ で宙ぶらりんのオブジェクトを検索する際に一度使用しただけです。

git reflog

git reflog コマンドは、歴史を書き換える際に失われた可能性のあるコミットを探すため、ブランチのすべてのHEADがあった場所のログを見ていきます。

このコマンドは主に 参照ログの短縮形 で取り上げました。通常の使い方と、git log -g を使用して git log の出力で同じ情報を見る方法を示しました。

データリカバリ では、失ったブランチの回復など実用的な例を見てきました。

git filter-branch

git filter-branch コマンドは、大量のコミットを、特定のパターンに従って書き換える際に使用されます。例えば、あるファイルを全てのコミットから削除する場合や、プロジェクトを抽出するためにリポジトリ全体を単一のサブディレクトリへフィルタリングする場合に使用します。

全コミットからのファイルの削除 では、このコマンドの説明を行いました。また、--commit-filter--subdirectory-filter--tree-filter などいくつかのオプションの使い方を見てきました。

Git-p4 および TFS では、インポートした外部リポジトリの修正にこのコマンドを使用しました。