Подтвердить что ты не робот

Как найти путь локального репозитория git, когда я, возможно, в подкаталоге

Я ищу что-то вроде git list-path для печати путь связанного репозитория (каталог .git).

Немного фона: я установил git контроль версий на несколько моих проекты/папки. Некоторые из них вложены, поэтому один каталог с собственным репозиторием echo является вложенной папкой в ​​другой каталог, отслеживаемый другим репозиторием.

например. в моем домашнем каталоге (~) Я использую git для отслеживания моих файлов точек, но в папке ~/photo/meta-mix/ У меня есть другой проект, который я отслеживаю с помощью отдельный репозиторий. Теперь, скажем, я установил еще один проект в каталоге ~/photo/meta-match/, но я больше не знаю, есть ли у него собственный репозиторий. Поэтому я хочу узнать, является ли этот каталог версией и где находится его репозиторий.

Как это сделать с помощью команды git? git status может дать мне

nothing to commit

в обоих случаях, когда ~/photo/meta-match/ имеет свой собственный репозиторий или когда он просто ссылается на репозиторий ~.

4b9b3361

Ответ 1

git rev-parse --show-toplevel

может быть достаточно, если выполняется в репозитории git.
Из git rev-parse man-страница:

--show-toplevel

Показать абсолютный путь к каталогу верхнего уровня.

Для более старых версий (до 1.7.x) другие параметры перечислены в "Есть ли способ получить корневой каталог git в одной команде?":

git rev-parse --git-dir

Это даст путь к каталогу .git.


ОП указывает:

git rev-parse --show-prefix

который возвращает локальный путь под корнем git repo. (пустой, если вы находитесь в корневом каталоге git)


Примечание. Чтобы просто проверить, есть ли в репозитории git, я нахожу следующую команду довольно выразительной:

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

И да, если вам нужно проверить, находитесь ли вы в папке .git git -dir:

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