Como encontrar o caminho do repositório de git local quando eu estiver possivelmente em um subdiretório [duplicado]
.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.
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 ~
.
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