Ответ 1
Попробуйте следующее:
git rev-parse --show-toplevel
Возможный дубликат:
Есть ли способ добраться до корневого каталога git в одной команде?
Иногда я путаюсь с git, думая, что я внутри рабочего каталога git, но мне не кажется очевидным, что работает рабочий каталог верхнего уровня (содержащий .git/
). (Возможно, что репо было создано ошибкой.)
Итак, как мне узнать каталог верхнего уровня git repo, если я где-то внутри подкаталогов? Как я могу запросить git
для печати того, что, по его мнению, является текущим рабочим каталогом верхнего уровня?
Попробуйте следующее:
git rev-parse --show-toplevel
Я написал простой 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...