
Philipp Oakley
Mein Projekt hat eine Reihe von Test-PCs, die zu 100 % netzunabhängig sind. Wir verwenden ein USB-Laufwerk, um Dateien zu und von diesen PCs zu übertragen. Einige Entwicklungen finden während der Tests auf diesen PCs statt. Wir übertragen ZIP-Dateien der aktualisierten Dateien, wobei die „Versionsinformationen“ im Namen der ZIP-Datei codiert sind.
Meine Frage ist, wie Git am besten für die Verwaltung der Sneakernet-Übertragung von Dateien (oder Repos oder was?) zwischen den Büro-PCs des Projekts und den Test-PCs verwendet werden kann. Es ist nicht der normale „Anwendungsfall“, der oft für Laptop-Benutzer präsentiert wird, die „off-net“ sind und in einem Eckcafé entwickeln und später wieder ans Netz gehen.
Hat jemand Erfahrungen mit solchen Szenarien?
Siehe auch die git bundle create <file> --all
antworten, um ein komplettes Repo zu übertragen
Die Verwendung von Git mit nicht verbundenen Computern ist einfach mit git bundle
.
Siehe seine Manpage.

Kent
Sie können auch einen Klon des Repositorys auf einem USB-Laufwerk aufbewahren. „Push“ vom Off-Net-PC auf das USB-Laufwerk, dann „Push“ vom USB-Laufwerk auf das zentrale Repository.
Es könnte besser sein, das USB-Laufwerks-Repository mit einem eigenen Arbeitsverzeichnis (auch auf dem USB-Laufwerk) zu haben. Ziehen Sie dann vom Off-Net-PC auf das USB-Laufwerk und drücken Sie vom USB-Laufwerk auf das zentrale Repository. Wenn dieser Push erfolgt, können Sie bei Bedarf auf dem USB-Laufwerk zusammenführen.

Philipp Oakley
Leser, die hierher kommen, sind wahrscheinlich auch daran interessiert, den Code „git-on-usb-stick-for-travelling-code“ zu verwenden, der viele Ähnlichkeiten aufweist. Es wird wahrscheinlich nicht für meine Umgebung funktionieren, in der zwei Benutzer die Sneakernet-Verwendungs-/Bearbeitungsbewegungen ausführen (dh zwei separate USB-Laufwerke), aber es ist eine Möglichkeit.
Es hängt alles davon ab, wie sehr Sie dem Übertragungslaufwerk vertrauen und ob die Tools funktionieren können, wenn Sie es nicht angeschlossen haben ….

chrisinmtown
Ich fand dieses Tutorial noch hilfreicher als die Manpage, weil es ein Beispiel dafür gibt, wie Git prüft, ob das eingehende Bundle und das Ziel-Repository einen gemeinsamen Vorfahren-Commit haben:
https://git-scm.com/book/en/v2/Git-Tools-Bundling
10180000cookie-checkWie verwende ich Git in einer Sneakernet-Umgebung?yes