Überprüfen Sie, dass git-repository vorhanden ist
Gibt es eine Möglichkeit, wie Sie überprüfen, ob git-repository vorhanden sind, nur vor dem ausführen git clone
Aktion? So etwas wie git clone $REMOTE_URL --dry-run
?
Ich würde gerne verwirklichen schnelle überprüfung der Methode, die prüfen Existenz vor der Klon-Aktion ausgeführt wird. Ich erwarte, dass die Verbindung langsam und repository könnte groß sein, noch mehr als 1GB, so will ich nicht zu verlassen auf Zeit umfangreiche Bedienung durch einfache Validierung. Der Klon wird asynchron durchgeführt werden, in den hintergrund, wenn Validierung Pässe.
Fand ich diese https://superuser.com/questions/227509/git-ping-check-if-remote-repository-exists aber es funktioniert aus dem git-repository Kontext nach der ersten Klon-Aktion fertig ist.
Vielleicht gibt es einige git-Aufruf, funktioniert ohne git-repository-Kontext und zurück "einige Daten", wenn das repository auf dem Ziel vorhanden sind oder eine Fehlermeldung, falls nicht.
InformationsquelleAutor Jan Stanicek | 2014-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Antwort, die Sie verbunden hat, was Sie wollen, es zu tun.
Versuchen Sie, dieses in einen Ordner, ohne ein repository, in:
Es sollte Ihnen zeigen, die Verweise auf die Fernbedienung, obwohl Sie noch nicht Hinzugefügt einem lokalen repository mit
git init
oder getangit clone
.Mehr sehen: https://www.kernel.org/pub/software/scm/git/docs/git-ls-remote.html
+1 für Universelle Lösung ohne depenency auf github api nur.
Gibt es eine Möglichkeit, dies zu tun aus einem bash-Skript? Etwas, das getestet werden kann, mit einer if/else-Anweisung?
InformationsquelleAutor Leigh
Können Sie ganz einfach tun dies mit Hilfe GitHub API (stellen Sie sicher, lassen Sie sich
.git
aus dem repo-name):Wenn das repository nicht gefunden:
Ansonsten:
ls-remote
Lösung sollte mit jeder Fernbedienung.das ist ein guter Punkt.
Für Bitbucket, die folgende URL kann verwendet werden: api.bitbucket.org/2.0/repositories{user}/{repo_name}, Wenn das Repository nicht existiert: es gibt
{'message' : Repository user/repo_name not found}
Wenn das Repository vorhanden ist, gibt esForbidden
. Das ist nicht gerade informativ, aber es funktioniert.InformationsquelleAutor
Können Sie
ls-remote
:Beachten Sie, dass
ls-remote
Ausgänge 128 wenn dies der Fall, so könnte man umleiten der Ausgabe des Befehls, wenn Sie es nicht brauchen und einfach mal den Befehl Wert zurück.Beachten Sie, dass in einigen Fällen erhalten Sie möglicherweise zur Eingabe aufgefordert, wenn Sie z.B. versuchen, auf eine GitHub
https://...
repository. Dies ist, weil es sein kann eine passende private repository.InformationsquelleAutor Chris
Versuchen Sie Folgendes:
Wenn das Git-repository nicht vorhanden ist, wird die Ausgabe:
Wenn das Git-repository vorhanden ist, wird die Ausgabe:
InformationsquelleAutor Ravi Prajapati