Question

Quel est le chemin le plus rapide pour restaurer un dépôt git après une erreur de système de fichiers sur le serveur principal?

Imaginez le serveur central de votre projet OSS échoue et tous les commits pendant deux jours sont perdus après la restauration. Comment obtenez-vous les dos? Est-il juste assez pour appeler « git push » sur tous les clients? Ou est-il autre chose que je dois prendre en compte?

Était-ce utile?

La solution

Chaque dépôt est également une sauvegarde du « référentiel principal » (qui est « principale » par convention seulement) si un git push du dépôt qui a fait le plus récent git fetch ou git pull devrait être tout ce qu'il faut, à son état, bien sûr. Vous avez seulement besoin de prendre soin des crochets et tel, mais si vous dites que seuls les deux derniers jours de la valeur de commits ont été perdus entre eux étaient probablement pas lésés de toute façon.

Autres conseils

A git pull puis un git push devrait être suffisant.

Alternativement un git push -f mettra à jour le serveur de force avec votre copie locale, mais cela peut causer des problèmes pour les autres (s'il y a plusieurs committers).

Faites-nous savoir si vous avez d'autres problèmes ou erreurs.

Je pense qu'il pourrait être préférable de créer un nouveau repo sur le serveur:

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

Appuyez ensuite de tous les différents clones que vous avez. Ma pensée est que cela éviterait tous les fichiers corrompus qui peuvent être dans l'ancienne pension, et il devrait y avoir aucune perte du tout, vous avez fourni tous les travaux sur vos propres clones et Noone est de déconner dans le repo de serveur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top