2010-11-02 11 views

risposta

64

Nella directory principale del repository, il file .git/config contiene tutte le informazioni su archivi remoti e filiali. Nel tuo esempio si dovrebbe cercare qualcosa di simile:

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

Inoltre, il comando git: git remote -v mostra nome remoto repository e URL. Il repository remoto "origine" di solito corrisponde al repository originale, da cui è stata clonata la copia locale.

+13

È possibile anche usare 'git spettacolo remoto origin' per vedere molte più informazioni per quel telecomando. – Cascabel

26

questo è il comando bash rapido che si sta probabilmente cercare
stamperà solo un nome di base del repository remoto

dove si recupera da:
basename $(git remote show -n origin | grep Fetch | cut -d: -f2-)

in alternativa, in cui si preme a:
basename $(git remote show -n origin | grep Push | cut -d: -f2-)

specialmente -n opzione rendono il comando molto più veloce

+0

Secondo suggerimento è esattamente quello che volevo, grazie. – duma

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

Questa dovrebbe essere la risposta accettata. –

+0

concordato; questo è il migliore perché non richiede una connessione/autenticazione al server remoto git. L'OP ha chiesto "utilizzando il tuo repository locale" ma "git remote show origin" richiama la rete. –

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

testati con stile 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

spiega cosa hai fatto, [come risposta] (https://stackoverflow.com/help/how-to-answer) – Maher

1

Io uso questo:

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

che restituisce qualcosa come gitRepo. (Rimuovere il .git alla fine del comando per retun qualcosa come gitRepo.git.)

(Nota: Richiede git> = 2.7.0)

Problemi correlati