Quando esegui il tuo primo clone usando la sintassi
git clone username@server:gitRepo.git
È possibile utilizzare il tuo repository locale per trovare il nome di quel clone iniziale?
(Quindi nell'esempio sopra, trova gitRepo.git
.)
Quando esegui il tuo primo clone usando la sintassi
git clone username@server:gitRepo.git
È possibile utilizzare il tuo repository locale per trovare il nome di quel clone iniziale?
(Quindi nell'esempio sopra, trova gitRepo.git
.)
Risposte:
Nella radice del repository, il .git/config
file contiene tutte le informazioni su repository e rami remoti. Nel tuo esempio, dovresti cercare qualcosa come:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = server:gitRepo.git
Inoltre, il comando Git git remote -v
mostra il nome e l'URL del repository remoto. Il repository remoto "origin" di solito corrisponde al repository originale, da cui è stata clonata la copia locale.
git remote show origin
per vedere molte più informazioni su quel telecomando.
git remote -v
che legga e scriva .git/config
.
git config --get remote.origin.url
git remote show origin
chiama la rete.
Questo è il comando Bash rapido, che probabilmente stai cercando, 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, dove si spinge a :
basename $(git remote show -n origin | grep Push | cut -d: -f2-)
Soprattutto l' -n
opzione rende il comando molto più veloce.
Mi sono imbattuto in questa domanda cercando di ottenere la organization/repo
stringa da un host git come github o gitlab.
Questo funziona per me:
git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'
Utilizza sed
per sostituire l'output del git config
comando con solo l'organizzazione e il nome del repository.
Qualcosa di simile github/scientist
sarebbe trovato dalla classe di caratteri [[:graph:]]
nell'espressione regolare.
Il messaggio \1
dice a sed di sostituire tutto con solo i caratteri abbinati.
git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'
git remote show origin -n | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
È stato testato con tre diversi stili di URL:
echo "Fetch URL: http://user@pass:gitservice.org:20080/owner/repo.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
echo "Fetch URL: Fetch URL: git@github.com: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'