ときどき、自分が Git の作業ディレクトリ内にいると考えて git と混同されますが、最上位の作業ディレクトリ ( を含む.git/
) が何であるかは明らかではありません。(おそらく、そのレポは誤って作成されたものです。)
では、サブディレクトリ内のどこかにいる場合、最上位の Git リポジトリ ディレクトリを見つけるにはどうすればよいでしょうか? git
現在のトップレベルの作業ディレクトリが何であるかを印刷するにはどうすればよいですか?
ときどき、自分が Git の作業ディレクトリ内にいると考えて git と混同されますが、最上位の作業ディレクトリ ( を含む.git/
) が何であるかは明らかではありません。(おそらく、そのレポは誤って作成されたものです。)
では、サブディレクトリ内のどこかにいる場合、最上位の Git リポジトリ ディレクトリを見つけるにはどうすればよいでしょうか? git
現在のトップレベルの作業ディレクトリが何であるかを印刷するにはどうすればよいですか?
これを試して:
git rev-parse --show-toplevel
このような Git へのクエリを便利にするための簡単なスクリプト ( 「git-shortcuts 」コレクションの git-find-git-dirs ) を作成しました。
#!/bin/bash
# find-git-dirs -- A simple script to "find" (i.e., "print") the GIT_DIR, as assumed by Git. (Useful if you are in a subdir, and you are not sure about the top-level repo dir.)
SUBDIRECTORY_OK=yes
. "$(git --exec-path)/git-sh-setup"
echo "GIT_DIR=$GIT_DIR"
そしてそれを入れてください~/bin/
。これで、次のような単純なクエリを実行できます。
$ git find-git-dirs
GIT_DIR=/home/imz/.git
GIT_WORK_TREE=
$
最初の質問から欠けているのは、最上位の作業ディレクトリの出力だけです。現在は、内部の git リポジトリ ディレクトリへのパスを出力するだけです...