2011-07-19 18 views
16

可能性の重複:
Is there a way to get to the git root directory in one command?Gitがトップレベルの作業ディレクトリとは何を考えるのですか?

時々、私はGitの作業ディレクトリ内だが、それはどのようなトップレベルの私には明白ではないということを考えてのgitで混乱しています作業ディレクトリ(.git/を含む)はです。 (おそらく、そのレポは間違いで作成されたでしょう)

私はサブディレクトリのどこかにいる場合、トップレベルのGitリポジトリディレクトリを見つけるにはどうすればいいですか? gitに現在の最上位作業ディレクトリが何であると思われるかを印刷するにはどうすればよいですか?便利なGitはするようなクエリを作るために

git rev-parse --show-toplevel 

答えて

38

これを試してみてください;

$ git find-git-dirs 
GIT_DIR=/home/imz/.git 
GIT_WORK_TREE= 
$ 

私は最初の質問は今それだけで内部のgitリポジトリへのパスを印刷し、トップレベルの作業ディレクトリの印刷であるから欠けている唯一のもの:今、私はこのように私の単純なクエリを行うことができますdir ...

+0

ありがとうございました。あなたの助けがなければ、 'git-rev-parse'を調べるのは難しいでしょう。その名前から、改訂仕様を処理することが示唆されています。ところで、私は '[= ]' gitの--exec-パス 'と類似のgit --work-tree'の作品を見て喜んでいるだろう:「パスが指定されていない場合、Gitは現在の設定を印刷します」。少なくとも、IMO、それはそのような特徴を探す論理的な場所になるだろう。 –

+0

**注意**これは '.git'ディレクトリの中では失敗します。解決方法については、重複したマークを参照してください。 –

+0

このコマンドはサブモジュール –

1

私は(私の "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" 

をして​​にそれを置く

関連する問題