Как узнать, что Git считает рабочий каталог верхнего уровня?

Возможный дубликат:
Есть ли способ добраться до корневого каталога git в одной команде?

Иногда я путаюсь с git, думая, что я внутри рабочего каталога git, но мне не кажется очевидным, что работает рабочий каталог верхнего уровня (содержащий .git/). (Возможно, что репо было создано ошибкой.)

Итак, как мне узнать каталог верхнего уровня git repo, если я где-то внутри подкаталогов? Как я могу запросить git для печати того, что, по его мнению, является текущим рабочим каталогом верхнего уровня?

Ответы

Ответ 1

Попробуйте следующее:

git rev-parse --show-toplevel

Ответ 2

Я написал простой script (git-find-git-dirs в своем git-shortcuts", чтобы сделать такие запросы Git удобными:

#!/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 repo...