78

関連するリポジトリ(ディレクトリ)git list-pathのパスを出力するようなものを探しています。.git

ちょっとした背景: かなりの数のプロジェクト/フォルダーに git バージョン管理をセットアップしました。それらの一部はネストされているため、エコー独自のリポジトリを持つ 1 つのディレクトリは、別のリポジトリで追跡される別のディレクトリのサブフォルダーです。

たとえば、ホーム ディレクトリ ( ~) では git を使用してドット ファイルを追跡していますが、フォルダー~/photo/meta-mix/には、別のリポジトリで追跡する別のプロジェクトがあります。たとえば、ディレクトリに別のプロジェクトをセットアップしまし ~/photo/meta-match/たが、独自のリポジトリがあるかどうかはわかりません。したがって、このディレクトリがバージョン管理されているかどうか、およびそのリポジトリがどこにあるかを調べたいと思います。

git コマンドでこれを行うにはどうすればよいですか? git status私に与えることができます

nothing to commit

どちらの場合も、独自~/photo/meta-match/のリポジトリがある場合と、単に のリポジトリを参照する場合があります~

4

1 に答える 1

111
git rev-parse --show-toplevel

git リポジトリ内で実行すれば十分です。マニュアルページ
から:git rev-parse

--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

はい、.gitgit-dir フォルダーにいるかどうかを確認する必要がある場合は、次のようにします。

git rev-parse --is-inside-git-dir
于 2012-09-06T06:15:04.283 に答える