Wenn Sie Ihren ersten Klon mit der Syntax durchführen
git clone username@server:gitRepo.git
Ist es möglich, mithilfe Ihres lokalen Repositorys den Namen dieses ersten Klons zu ermitteln?
(Finden Sie also im obigen Beispiel gitRepo.git .)
Wenn Sie Ihren ersten Klon mit der Syntax durchführen
git clone username@server:gitRepo.git
Ist es möglich, mithilfe Ihres lokalen Repositorys den Namen dieses ersten Klons zu ermitteln?
(Finden Sie also im obigen Beispiel gitRepo.git .)
Antworten:
Im Repository-Stammverzeichnis enthält die .git/configDatei alle Informationen zu Remote-Repositorys und -Zweigen. In Ihrem Beispiel sollten Sie nach etwas suchen wie:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = server:gitRepo.git
Außerdem zeigt der Git-Befehl git remote -vden Namen und die URL des Remote-Repositorys an. Das Remote-Repository "origin" entspricht normalerweise dem ursprünglichen Repository, aus dem die lokale Kopie geklont wurde.
git remote show originviel mehr Informationen zu dieser Fernbedienung anzeigen.
git remote -vnur Lesen und Schreiben .git/config.
git config --get remote.origin.url
git remote show originruft jedoch das Netzwerk an.
Dies ist ein schneller Bash-Befehl, nach dem Sie wahrscheinlich suchen. Er gibt nur einen Basisnamen des Remote-Repositorys aus:
Wo Sie holen aus :
basename $(git remote show -n origin | grep Fetch | cut -d: -f2-)
Alternativ, wo Sie drücken zu :
basename $(git remote show -n origin | grep Push | cut -d: -f2-)
Insbesondere die -nOption macht den Befehl viel schneller.
Ich bin über diese Frage gestolpert und habe versucht, den organization/repoString von einem Git-Host wie Github oder Gitlab zu bekommen.
Das funktioniert bei mir:
git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'
Es wird verwendet sed, um die Ausgabe des git configBefehls nur durch den Organisations- und Reponamen zu ersetzen .
So etwas github/scientistwürde von der Zeichenklasse [[:graph:]]im regulären Ausdruck abgeglichen .
Das \1sagt sed, alles durch nur die übereinstimmenden Zeichen zu ersetzen.
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'
Es wurde mit drei verschiedenen URL-Stilen getestet:
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'