1. ホーム
  2. git

サブディレクトリにいる可能性があるときに、ローカルの git リポジトリのパスを見つける方法 [重複] (duplicate)

2023-08-11 05:13:46

質問

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

少し背景を説明します。私はかなりの数のプロジェクトやフォルダーで git バージョン管理をセットアップしています。 プロジェクト/フォルダーに git バージョンコントロールを設定しました。 それらのいくつかはネストされており、独自のリポジトリを持つ1つのディレクトリは、別のリポジトリで追跡される別のディレクトリのサブフォルダです。

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

gitコマンドでこれを行うにはどうしたらよいでしょうか。 git status は私に与えることができます

nothing to commit

両方とも の場合は ~/photo/meta-match/ が独自のリポジトリを持っている場合や、単に ~ .

どのように解決するのですか?

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 repo root の下のローカルパスを返します。(gitリポジトリのルートにいる場合は空です)


注:単純にgit repoにいるかどうかをチェックするには、次のコマンドが非常に表現力が豊かだと思います。

git rev-parse --is-inside-work-tree

そして、そう、もしあなたがチェックする必要があるのなら、あなたが .git git-dir フォルダにあるかどうかを確認する必要があります。

git rev-parse --is-inside-git-dir