Frage

Was ist der schnellste Weg eine Git-Repository nach einem Dateisystemfehler auf dem Hauptserver?

wiederherstellen

Stellen Sie sich den zentralen Server Ihres OSS-Projekt schlägt fehl, und alle Commits für zwei Tage verloren nach der Wiederherstellung. Wie bekommt man jene zurück? Ist es genug, nur „git push“ auf allen Clients zu nennen? Oder gibt es etwas, das ich berücksichtigen muss?

War es hilfreich?

Lösung

Jedes Repository ist auch eine Sicherung des „Haupt-Repository“ (die nur „main“ vereinbarungsgemäß ist) so ein git push aus dem Repository, das die jüngsten git fetch oder git pull haben sollte alles was man braucht Maßnahmen zu seinem Zustand sein, Na sicher. Sie müssen nur die Betreuung des Haken nehmen und so, aber wenn Sie sagen, dass nur die letzten zwei Tage im Wert von Commits die wohl ohnehin nicht zu Schaden gekommen war verloren.

Andere Tipps

Ein git pull und dann ein git push sollten genug sein.

Alternativ kann ein git push -f wird der Server mit der lokalen Kopie gewaltsam aktualisieren, aber dies kann Probleme für andere verursachen (wenn es mehrere Committer).

Lassen Sie uns wissen, wenn Sie irgendwelche weiteren Probleme oder Fehler führen.

Ich denke, es könnte besser sein, eine neue Repo auf dem Server zu erstellen:

% ssh user@server
% mv /path/to/repo /path/to/repo.old
% mkdir /path/to/repo
% cd /path/to/repo
% git init --bare

Dann drücken Sie aus den verschiedenen Klonen, die Sie haben. Mein Denken ist, dass diese keine beschädigten Dateien vermeiden würde, die in der alten Repo sein können, und es sollte überhaupt keinen Verlust sein, vorausgesetzt, alle Arbeiten auf die eigene Klone, und niemand wird Herumspiele im Server-Repo.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top