Wie kann ich überprüfen, ob eine Datei existiert in einem remote?
Gibt es eine Möglichkeit zu überprüfen, ob eine Datei unter dem angegebenen, relativen Pfad existiert in einem remote? Ich bin fein mit dem abrufen der info zuerst, wenn es ist die einzige option. In anderen Worten, ich bin auf der Suche für git-ls-files mit einer option, um anzugeben, remote-und branch. Ich bin nur interessiert, wenn die Datei vorhanden ist (eine Liste der Dateien, die auf dem Zweig wird so gut tun), ich don ' T care über hashes, diffs usw.
InformationsquelleAutor zaza | 2010-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
die Ausfahrt mit null, wenn die Datei vorhanden ist. Statt
<remote>
oben würde man mit einem remote-branch-Namen (aber es könnte in der Tat werden alle tree-ish-Objekt-Referenz). Um einen solchen remote-branch, müssen Sie die remote-repository konfiguriert und abgerufen (z.B. durch die Verwendung vongit remote add
+git fetch
).Einem konkreten Beispiel:
Zwei Dinge zu beachten:
/
als Pfad-Trennzeichen in Dateinamen, auch auf z.B. Windows.<filename>
ist ein vollständiger Pfad ist (wiefoo/bar/README
), relativ zum Stammverzeichnis des Repositorys.<remote>
du meinst das remote-Zweig, das heißt, Sie haben konfiguriert die remote und rungit fetch <remote>
ersten; Sie sind die Prüfung der remote-Zweigstelle in deinem repo sind, so müssen Sie sicher sein, dass up-to-date.Genau, danke. Ich eingebaut, dass in die Antwort.
Hallo @earl vielen Dank für die Antwort, aber kann ich nicht bekommen, warum es nicht richtig funktioniert in diesem Fall. Ich habe erfolgreich entfernt
.idea/
Ordner aus dem remote-repository, aber nicht lokal mit codegit rm --cached -rf .idea
Dann habe ich versucht, um zu sehen, ob es sill auf das remote-repository mit codegit cat-file -e origin/branch:./.idea
und kam mit 0, was bedeutet.idea/
ist immer noch auf dem remote-repository ?InformationsquelleAutor earl
Können Sie git archive, um Zugriff auf einzelne Dateien ohne Download von jedem anderen Teil von einem repository:
Archiv-service (
upload-archive
) kann nicht aktiviert werden auf allen Servern oder Repositorien aber werden Sie haben, um es zu testen für den Server und Repositorys, die Sie zugreifen müssen.Wenn das Archiv-Dienst nicht verfügbar ist, müssen Sie die Objekte Holen, die durch normale Mittel.
Wenn Sie nicht bereits über ein remote-setup für das repository, in Frage, die Sie tun können, eine "flache" fetch in FETCH_HEAD (dies getan werden muss, um in ein Git-repository, aber es kann sein, völlig unabhängig oder sogar leer):
Wenn Sie eine remote-definiert für das repository ein, dann Sie wahrscheinlich wollen einfach nur, um Sie zu aktualisieren und Zugriff auf die Datei über den normalen remote-tracking-branches:
seien Sie gewarnt: die
git-archive
Lösung nicht zuverlässig arbeiten. es scheint zu prüfen, nur auf die Existenz der top-level-Dateien / Verzeichnissen, z.B.:git archive --remote=<repo> master dir-that-exists/then/some/nonsense/path
würde beenden mit 0InformationsquelleAutor Chris Johnsen