コマンドラインで操作している分には必要になるケースは少ないけど、スクリプトの中で使おうとした時に必要になったので。
Gitコマンドで例えばログを見ようとした時、カレントディレクトリがそのリポジトリディレクトリ下であれば、問題なく git log
できる。
これが、別のリポジトリディレクトリから git log
しようとすると、
% git log ../hoge-repo
fatal: ../hoge-repo: '../hoge-repo' is outside repository
って言われたり、Git管理下のディレクトリでなければ、
% git log /path/to/hoge-repo
fatal: Not a git repository (or any of the parent directories): .git
って言われたりする。
カレントディレクトリに関係なくgitコマンドを発行する場合は、以下のようにする。
git --work-tree=/path/to/hoge-repo --git-dir=/path/to/hoge-repo/.git log
Gitのバージョン次第では使えないみたいなので、使っているGitのバージョンに注意する必要あり。