217 votes

Comment obtenir le nom du dépôt Git dans un autre dépôt Git ?

Lorsque vous travaillez dans un répertoire Git, comment pouvez-vous obtenir le nom du dépôt Git dans un dépôt Git ? Existe-t-il des commandes Git ?

# I did check out bar repository and working in somewhere 
# under bar directory at this moment such as below.

$ git clone git://github.com/foo/bar.git
$ cd bar/baz/qux/quux/corge/grault # and I am working in here!
$ git xxx # <- ???
bar

19voto

dragn Points 970

Les autres réponses ne fonctionnent toujours pas lorsque le nom de votre répertoire ne correspond pas au nom du référentiel distant (et cela pourrait être le cas). Vous pouvez obtenir le réel nom du dépôt avec quelque chose comme ceci :

git remote show origin -n | grep "Fetch URL:" | sed -E "s#^.*/(.*)$#\1#" | sed "s#.git$##"

En gros, vous appelez git remote show origin prendre l'URL du dépôt dans le champ "Fetch URL :", et le regexer pour obtenir la partie avec le nom : https://github.com/dragn/ neat-vimrc .git

7voto

rippledj Points 344

C'est un peu tard pour cette question, mais si vous.. :

cat /path/to/repo/.git/config

Vous verrez l'url du dépôt qui inclura le nom du dépôt :

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://github.com/your_git_user_name/your_git_repo_name.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

6voto

OLIVER.KOO Points 2903

Je pense que c'est une meilleure façon de identifier sans ambiguïté un clone d'un référentiel.

git config --get remote.origin.url et s'assurer que l'origine correspond ssh://your/repo .

3voto

Lemonada Points 31

Nom complet du repo :

git config --get remote.origin.url | grep -Po "(?<=git@github\.com:)(.*?)(?=.git)"

2voto

nroose Points 135

Si vous voulez le nom complet du dépôt GitHub ('full name') - user/repository, et que vous voulez le faire en Ruby...

git remote show origin -n | ruby -ne 'puts /^\s*Fetch.*:(.*).git/.match($_)[1] rescue nil'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X