Domanda

Qual è il percorso più veloce per ripristinare un repository git dopo un errore di sistema di file sul server principale?

Immaginate il server centrale del vostro progetto OSS non riesce e tutti i commit per due giorni vengono persi dopo il ripristino. Come si ottiene chi è rimasto? È sufficiente chiamare "git push" su tutti i client? O c'è qualcos'altro che deve prendere in considerazione?

È stato utile?

Soluzione

Ogni repository è anche un backup del “repository principale” (che è “principale” per convenzione solo) in modo da un git push dal repository che ha fatto il git fetch più recente o git pull dovrebbe essere tutto quello che serve, fino al suo stato, ovviamente. Hai solo bisogno di prendersi cura dei ganci e tale, ma se dici che vale la pena di commit solo gli ultimi due giorni sono stati persi quelli erano probabilmente non danneggiato in ogni caso.

Altri suggerimenti

Un git pull e poi un git push dovrebbe essere sufficiente.

In alternativa un git push -f sarà forzatamente aggiornare il server con la vostra copia locale, ma questo può causare problemi per gli altri (se ci sono più committer).

Fateci sapere se si esegue in ulteriori problemi o errori.

Credo che potrebbe essere migliore per creare un nuovo repository sul server:

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

Quindi spingere da tutti i diversi cloni che avete. Il mio pensiero è che questo sarebbe evitare eventuali file corrotti che potrebbero essere nel vecchio pronti contro termine, e non ci dovrebbe essere alcuna perdita a tutti, ha fornito tutti i lavori sui propri cloni, e nessuno è nei guai nel repository del server.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top