Como encontrar o caminho do repositório de git local quando eu estiver possivelmente em um subdiretório [duplicado]

Esta pergunta já tem uma resposta:
Estou à procura de algo como imprimir localização do repositório associado (a pasta .git).

um pouco de fundo: eu configurei o controle de versão git em alguns de as projectos / pastas. Alguns deles são aninhados, então um diretório com o próprio repositório echo é uma sub-pasta para outro diretório rastreado com outro repositório.

por exemplo, na minha pasta pessoal (~) USO o git para seguir os meus ficheiros de pontos, mas na pasta ~/photo/meta-mix/ Tenho outro projecto que sigo com um repositório separado. Agora,digamos, eu criei outro projeto em diretório ~/photo/meta-match/, mas já não sei se tem o seu próprio repositorio. Por isso, quero saber se este directório é versao controlada e onde está o seu repositório.

Como posso fazer isto com um comando git? git status pode dar-me

nothing to commit

Em ambos os casos, quando ~/photo/meta-match/ tem o seu próprio repositório ou quando apenas se refere ao repositório de ~.

Author: halloleo, 2012-09-06

1 answers

git rev-parse --show-toplevel

Pode ser suficiente se executado dentro de um acordo de git.
De git rev-parse página do homem:

--show-toplevel

Mostra a localização absoluta da pasta de topo.

Para versões mais antigas (antes de 1.7.x), as outras opções estão listadas em " existe uma maneira de obter o diretório raiz do git em um comando?":

git rev-parse --git-dir

Isso daria a localização do directório .git.


O OP menciona:

git rev-parse --show-prefix

Que devolve o local localização sob a raiz do repo git. (esvazie se você estiver no git repo root)


Nota: para verificar simplesmente se uma pessoa está num acordo de git, considero o seguinte comando bastante expressivo:

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

E sim, se precisar de verificar se está numa pasta .git git-dir:

git rev-parse --is-inside-git-dir
 79
Author: VonC, 2017-05-23 12:09:59