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/configfile 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 -vmostra 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 originper vedere molte più informazioni su quel telecomando.
git remote -vche legga e scriva .git/config.
git config --get remote.origin.url
git remote show originchiama 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' -nopzione rende il comando molto più veloce.
Mi sono imbattuto in questa domanda cercando di ottenere la organization/repostringa 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 sedper sostituire l'output del git configcomando con solo l'organizzazione e il nome del repository.
Qualcosa di simile github/scientistsarebbe trovato dalla classe di caratteri [[:graph:]]nell'espressione regolare.
Il messaggio \1dice 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'