gitコマンドをワークツリーのパスを指定して実行

git コマンドをワークツリーの外から実行すると

fatal: Not a git repository (or any of the parent directories): .git

というエラーになる。

でも一々ディレクトリまで移動するのが面倒なときもある。
複数のgitリポジトリにまたがって作業しているときとか、バッチ用のシェルスクリプト内でgitを使用するときとか。。

そういう場合は-Cでワークツリーのディレクトリを指定するとよい。


git -C /path/to/work-tree status

-Cオプションは現在の作業ディレクトリの代わりに、指定したパスでgitが実行されたかのように処理する。
複数の-Cオプションが与えられた場合、各-Cオプションに与えられた相対パスは先行の-C からの相対パスになる。

-Cオプションは–git-dir と –work-treeのようなパス名を期待するコマンドについて、-Cからの相対パスとして解釈するように作用する。
例として、次のコマンドは同じ動作となる。


 git --git-dir=a.git --work-tree=b -C c status

=


 git --git-dir=c/a.git --work-tree=c/b status

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です