2010-11-02 4 views

Répondre

64

Dans la racine du référentiel, le fichier .git/config contient toutes les informations sur les dépôts disto et les branches. Dans votre exemple, vous devriez chercher quelque chose comme:

[remote "origin"] 
    fetch = +refs/heads/*:refs/remotes/origin/* 
    url = server:gitRepo.git 

En outre, la commande git: git remote -v montre le nom et l'URL à distance référentiel. Le référentiel distant "origin" correspond généralement au référentiel d'origine, à partir duquel la copie locale a été clonée.

+13

Vous pouvez également utiliser 'origin' git show à distance pour voir beaucoup plus d'informations à propos de cette télécommande. – Cascabel

26

c'est commande bash rapide que vous recherchez probablement pour
imprimera seulement basename du dépôt distant

où vous allez chercher de:
basename $(git remote show -n origin | grep Fetch | cut -d: -f2-)

alternativement où vous poussez à:
basename $(git remote show -n origin | grep Push | cut -d: -f2-)

en particulier -n l'option faire la commande beaucoup plus rapide

+0

Deuxième suggestion est exactement ce que je voulais, merci. – duma

38
git config --get remote.origin.url 
+3

Ceci devrait être la réponse acceptée. –

+0

D'accord; C'est le meilleur car il ne nécessite pas de connexion/authentification au serveur distant git. OP a demandé "en utilisant votre référentiel local" mais "git remote show origin" appelle au réseau. –

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

testé avec un style 3 url:

echo "Fetch URL: http://[email protected]:gitservice.org:20080/owner/repo.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil' 
echo "Fetch URL: Fetch URL: [email protected]:home1-oss/oss-build.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil' 
echo "Fetch URL: https://github.com/owner/repo.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil' 
+0

expliquez ce que vous avez fait, [how-to-answer] (https://stackoverflow.com/help/how-to-answer) – Maher

1

J'utilise ceci:

basename $(git remote get-url origin) .git

qui retourne quelque chose comme gitRepo. (Retirez le .git à la fin de la commande retun quelque chose comme gitRepo.git.)

(Note: requires git> = 2.7.0)

Questions connexes