私はgit list-path
関連リポジトリのパス(.git
ディレクトリ)を出力するようなものを探しています。
背景:かなりの数のプロジェクト/フォルダーでgitバージョン管理を設定しました。それらのいくつかはネストされているため、echo独自のリポジトリーを持つ1つのディレクトリーは、別のリポジトリーで追跡される別のディレクトリーのサブフォルダーです。
例えば。ホームディレクトリ(~
)でgitを使用してドットファイルを追跡しますが、フォルダー~/photo/meta-mix/
には別のリポジトリで追跡する別のプロジェクトがあります。ここで、たとえば、ディレクトリ~/photo/meta-match/
に別のプロジェクトをセットアップしましたが、独自のリポジトリがあるかどうかはわかりません。したがって、このディレクトリがバージョン管理されているかどうか、およびそのリポジトリがどこにあるかを知りたいと思います。
Gitコマンドでこれを行うにはどうすればよいですか? git status
は私に与えることができます
nothing to commit
bothの場合、~/photo/meta-match/
に独自のリポジトリがある場合、または~
のリポジトリを単に参照する場合。
git rev-parse --show-toplevel
gitリポジトリ内で実行すれば十分です。
From git rev-parse
manページ:
--show-toplevel
最上位ディレクトリの絶対パスを表示します。
古いバージョン(1.7.xより前)の場合、他のオプションは「 1つのコマンドでgitルートディレクトリを取得する方法はありますか? 」にリストされています。
git rev-parse --git-dir
それは.git
ディレクトリのパスを提供します。
OPの言及:
git rev-parse --show-prefix
これは、gitリポジトリルートの下のローカルパスを返します。 (gitリポジトリルートにいる場合は空)
注:gitリポジトリにあるかどうかを単純に確認するために、次のコマンドは非常に表現力があります。
git rev-parse --is-inside-work-tree
はい、.git
git-dirフォルダーにいるかどうかを確認する必要がある場合:
git rev-parse --is-inside-git-dir