Frage Wie kann ich die URL ermitteln, von der ein lokales Git-Repository ursprünglich geklont wurde?


Ich habe vor ein paar Tagen ein Projekt von GitHub gemacht. Ich habe inzwischen herausgefunden, dass es auf GitHub mehrere Gabeln gibt, und ich habe es versäumt zu bemerken, welche ich ursprünglich genommen habe. Wie kann ich feststellen, welche dieser Gabeln ich gezogen habe?


2768
2017-11-03 16:47


Ursprung


Antworten:


Wenn nur die Remote-URL oder die referenzielle Integrität unterbrochen werden soll:

git config --get remote.origin.url

Wenn Sie die vollständige Ausgabe benötigen oder die referenzielle Integrität intakt ist:

git remote show origin

Beim Benutzen git clone (aus GitHub oder einem anderen Quell-Repository) Der Standardname für die Quelle des Klons ist "Ursprung". Verwenden git remote show zeigt die Informationen zu diesem entfernten Namen an. Die ersten Zeilen sollten zeigen:

C:\Users\jaredpar\VsVim> git remote show origin
* remote origin
  Fetch URL: git@github.com:jaredpar/VsVim.git
  Push  URL: git@github.com:jaredpar/VsVim.git
  HEAD branch: master
  Remote branches:

Wenn Sie den Wert im Skript verwenden möchten, verwenden Sie den ersten Befehl in dieser Antwort.


3926
2017-11-03 16:50



Sollten Sie dies zu Skriptzwecken wünschen, können Sie nur die URL mit erhalten

git config --get remote.origin.url

497
2017-11-03 19:35



Du kannst es versuchen:

git remote -v

Es wird alle Abruf- / Push-URLs Ihrer Fernbedienungen ausgeben.


421
2018-01-29 12:01



Um die Antwort zu bekommen:

git ls-remote --get-url [REMOTE]

Dies ist besser als das Lesen der Konfiguration; beziehen Sie sich auf die Man Seite für git-ls-remote:

--get-url

Erweitern Sie die URL des angegebenen Remote-Repositorys unter Berücksichtigung   irgendein "url.<base>.insteadOf" Konfigurationseinstellung (Siehe git-config(1)) und   Beenden, ohne mit der Fernbedienung zu sprechen.

Wie von @Jefromi hervorgehoben, wurde diese Option hinzugefügt v1.7.5 und nicht dokumentiert bis v1.7.12.2 (2012-09).


195
2018-06-02 05:15



Mit Git 2.7 (Release 5. Januar 2015) haben Sie eine kohärentere Lösung mit git remote:

git remote get-url origin

(schöner Anhänger von git remote set-url origin <newurl>)

Sehen commit 96f78d3 (16 Sep 2015) von Ben Boeckel (mathstuf).
(Zusammengeführt von Junio ​​C Hamano - gitster - im committe e437cbd, 05 Okt 2015):

remote: fügt den Unterbefehl get-url hinzu

Erweitern insteadOf ist ein Teil von ls-remote --url und es gibt keinen Weg   erweitern pushInsteadOf auch.
  Füge hinzu ein get-url Unterbefehl, um beides abfragen zu können, sowie eine Möglichkeit, alle konfigurierten URLs zu erhalten.

get-url:

Ruft die URLs für einen Remote ab.
  Konfigurationen für insteadOf und pushInsteadOf sind hier erweitert.
  Standardmäßig ist nur die erste URL aufgeführt.

  • Mit '--push', werden Push-URLs abgefragt, anstatt URLs abzurufen.
  • Mit '--all', werden alle URLs für die Fernbedienung aufgelistet.

Vor Git 2.7 hatten Sie:

 git config --get remote.[REMOTE].url
 git ls-remote --get-url [REMOTE]
 git remote show [REMOTE]

63
2017-10-07 12:07



Zusammenfassend gibt es mindestens vier Möglichkeiten:

(Folgendes wurde für das offizielle Linux-Repository versucht)

Am wenigsten Informationen:

$ git config --get remote.origin.url
https://github.com/torvalds/linux.git

und

$ git ls-remote --get-url
https://github.com/torvalds/linux.git

Mehr Informationen:

$ git remote -v
origin    https://github.com/torvalds/linux.git (fetch)
origin    https://github.com/torvalds/linux.git (push)

Noch mehr Informationen:

$ git remote show origin
* remote origin
  Fetch URL: https://github.com/torvalds/linux.git
  Push  URL: https://github.com/torvalds/linux.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

43
2018-05-15 15:28



Kurze Antwort:

$ git remote show -n origin

oder eine Alternative für reine schnelle Skripte:

$ git config --get remote.origin.url

Einige Informationen:

  1. $ git remote -v druckt alle Fernbedienungen (nicht was du willst). Sie wollen Herkunft richtig?
  2. $ git remote show origin viel besser, zeigt nur origin aber dauert zu lange (getestet auf Git Version 1.8.1.msysgit.1).

Ich endete mit: $ git remote show -n origin, das scheint am schnellsten zu sein. Mit -n es wird keine entfernten Köpfe (AKA-Filialen) holen. Sie brauchen diese Art von Informationen nicht, oder?

http://www.kernel.org/pub//software/scm/git/docs/git-remote.html

Ihr könnt euch bewerben | grep -i fetch zu allen drei Versionen, um nur die Abruf-URL anzuzeigen.

Wenn Sie pure Geschwindigkeit benötigen, verwenden Sie:

$ git config --get remote.origin.url

Dank an @Jefromi um das zu verdeutlichen.


16
2018-02-27 18:11



Ich denke du findest es unter .git/config und remote["origin"] wenn du das nicht manipulierst.


15
2017-11-03 16:50



Die Fernbedienung des Upstream darf nicht als "Ursprung" bezeichnet werden. Hier ist eine Variation:

remote=$(git config --get branch.master.remote)
url=$(git config --get remote.$remote.url)
basename=$(basename "$url" .git)
echo $basename

Oder:

basename $(git config --get remote.$(git config --get branch.master.remote).url) .git

Für nützlichere Variablen gibt es:

$ git config -l

8
2018-04-19 20:49



Um die IP-Adresse / den Hostnamen von zu erhalten origin

Zum ssh:// Repositories:

git ls-remote --get-url origin | cut -f 2 -d @ | cut -f 1 -d "/"

Zum git:// Repositories:

git ls-remote --get-url origin | cut -f 2 -d @ | cut -f 1 -d ":"

6
2018-06-24 20:54