2016-09-28 5 views
1

Когда мой проект dir является символической ссылкой на то, где хранится фактический каталог, тогда --show-toplevel выведет фактический путь, который, вероятно, называется «физическим путем». Так, например, если я нахожусь в пути прямо видимой здесь:git rev-parse --show-toplevel, чтобы не разрешать символические ссылки

ln -s /home/me/.hidden_projects_storage/newproject /home/me/workspace/newproject.git 

затем --show-toplevel выведет:

/home/me/.hidden_projects_storage/newproject 

Я runnign git rev-parse из каталога верхнего уровня, newproject.git. Могу ли я каким-то образом вернуть символический путь?

ответ

0

Попробуйте запустить это:

echo $(cd $(git rev-parse --show-cdup) .; pwd) 
+0

Пробовал и возвращает неизменнном физический путь – Itzie

+0

Моей ошибки, по умолчанию 'realpath' следует симлинке. Существует опция, которая отключает эту функцию ('-s'), но« realpath »все еще терпит неудачу при ее запуске из каталога верхнего уровня репозитория (потому что в таком случае' git-rev-parse' возвращает пустую строку). Я изменил свой ответ, в настоящее время он больше не использует 'realpath', поэтому он должен быть более гибким и портативным. – qzb