Как найти путь локального репозитория git, когда я, возможно, в подкаталоге
Я ищу что-то вроде git list-path
для печати
путь связанного репозитория (каталог .git
).
Немного фона: я установил git контроль версий на несколько моих
проекты/папки. Некоторые из них вложены, поэтому один каталог с собственным репозиторием echo является вложенной папкой в другой каталог, отслеживаемый другим репозиторием.
например. в моем домашнем каталоге (~
) Я использую git для отслеживания моих файлов точек, но
в папке ~/photo/meta-mix/
У меня есть другой проект, который я отслеживаю с помощью
отдельный репозиторий. Теперь, скажем, я установил еще один проект в каталоге
~/photo/meta-match/
, но я больше не знаю, есть ли у него собственный
репозиторий. Поэтому я хочу узнать, является ли этот каталог версией
и где находится его репозиторий.
Как это сделать с помощью команды git? git status
может дать мне
nothing to commit
в обоих случаях, когда ~/photo/meta-match/
имеет свой собственный репозиторий или когда он просто ссылается на репозиторий ~
.
Ответы
Ответ 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