2010-11-02 12 views

Odpowiedz

64

W katalogu głównym repozytorium plik .git/config przechowuje wszystkie informacje o repozytoriach i oddziałach pilotów. W przykładzie należy patrzeć na coś takiego:

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

Również komenda git: git remote -v pokazuje zdalnego repozytorium nazwę i adres URL. repozytorium "origin" zwykle odpowiada oryginalnemu repozytorium, z którego sklonowano lokalną kopię.

+13

Można również użyć 'git remote pokazu origin' widzieć znacznie więcej informacji o właśnie tym zdalnym. – Cascabel

26

to szybkie polecenia bash, że jesteś prawdopodobnie szukać
będzie drukować tylko miejscami nazwę zdalnego repozytorium

gdzie zwrcania od:
basename $(git remote show -n origin | grep Fetch | cut -d: -f2-)

alternatywnie gdzie pchnąć to:
basename $(git remote show -n origin | grep Push | cut -d: -f2-)

zwłaszcza -n opcja dokonać polecenia znacznie szybciej

+0

Druga sugestia jest dokładnie tym, czego chciałem, dziękuję. – duma

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

To powinna być zaakceptowana odpowiedź. –

+0

Uzgodnione; jest to najlepsze, ponieważ nie wymaga połączenia/auth do zdalnego serwera git. OP zapytał "używając lokalnego repozytorium", ale 'git remote show origin' wywołuje sieć. –

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

przetestowany z klasą 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

wyjaśnij, co zrobiłeś, [jak-na-odpowiedź] (https://stackoverflow.com/help/how-to-answer) – Maher

1

Używam tego:

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

która zwraca coś jak gitRepo. (Usunąć .git na końcu polecenia do retun coś podobnego gitRepo.git.)

(Uwaga: Wymaga git> = 2.7.0)

Powiązane problemy