20 Stimmen

Wie sicher ist "git" bei einer unzuverlässigen Verbindung?

Ich verwende Git für die Versionskontrolle und lege meine Änderungen in einem Repository auf einem Server im Internet ab, um sie sicher aufzubewahren.

Ich kann auf einem Laptop im Zug, der über eine WiFi-Internetverbindung verfügt, ein paar kleine Codierungen vornehmen, aber es ist nicht que zuverlässig und fällt gelegentlich aus oder wird unbrauchbar langsam. Meine Frage ist, was passiert, wenn meine Verbindung während eines "Git Push" unterbrochen wird? Werde ich am Ende ein beschädigtes oder nur halb aktualisiertes Git-Repository haben? Und wenn ja, wie schwierig ist es, es wiederherzustellen?

16voto

Greg Hewgill Punkte 882617

Git wird Ihr Git-Repository nicht beschädigen oder "halb aktualisieren", nur weil die Verbindung ausfällt oder langsam ist. Es ist sehr robust, und ich würde es auch unter den schwierigsten Umständen noch gerne verwenden.

Der eigentliche push Funktion ist im Wesentlichen in zwei Schritten implementiert (im Falle eines Schnellvorlaufs, was immer der Fall sein sollte):

  • alle Objekte hochladen, die von Ihrem aktuellen Verzweigungskopf aus erreichbar sind und vom entfernten Verzweigungskopf aus nicht erreicht werden können
  • den Kopf des entfernten Zweigs aktualisieren, so dass er auf die letzte Übertragung zeigt

Der erste Vorgang ist idempotent, d. h. wenn er aus irgendeinem Grund auf halbem Weg fehlschlägt, können Sie ihn einfach erneut ausführen, um alles auf den neuesten Stand zu bringen. Der zweite Vorgang ist atomar und erfolgt erst, wenn alle neuen Objekte hochgeladen sind.

5voto

Blizz Punkte 7912

Laut Linus ist Git im Datenbereich so gut gesichert, dass es sogar einen Speicherfehler auf dem System, auf dem es läuft, erkennen würde. Es wird die Pakete, die mit einer ungültigen Prüfsumme am Server ankommen, einfach nicht anwenden, so dass Sie sich keine Sorgen machen müssen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X