Server Manager/ Help
Open Server Manager →

Scaricare gli ultimi aggiornamenti da git

Clicca su Scarica ultimi aggiornamenti da git nel pannello del servizio. Recuperiamo gli ultimi commit del tuo repository e, per le app web, riavviamo l'app.

Non hai ancora fatto il deploy? → Distribuisci un sito web da un repository git oppure Distribuisci un'app web da un repository git

Dopo aver distribuito un sito o un'app da un repository git, pubblicare nuovi commit nel repository non aggiorna automaticamente il server. Clicca su Scarica ultimi aggiornamenti da git per aggiornare il server: basta un clic, dietro le quinte eseguiamo git pull --ff-only e, per le app web, installiamo eventuali nuove dipendenze e riavviamo l'app tramite .

Quando il server è indietro rispetto al repository, la scheda del sito o dell'app nella schermata iniziale mostra un piccolo badge **· ⤓ N behind** accanto allo stato: così capisci subito che c'è qualcosa da scaricare. Passaci sopra con il mouse per vedere il comando esatto.

1. Apri il pannello del servizio

Nella schermata iniziale, clicca sulla scheda del sito o dell'app che vuoi aggiornare. Si aprirà il pannello del servizio.

Clicca sulla scheda del sito o dell'app nella schermata iniziale per aprire il pannello del servizio
Clicca sulla scheda del sito o dell'app nella schermata iniziale per aprire il pannello del servizio

2. Apri la scheda Controlli e clicca su "Scarica ultimi aggiornamenti da git"

Sia per i siti statici sia per le app web, Scarica ultimi aggiornamenti da git si trova nella scheda Controlli, insieme a Riavvia / Arresta / Avvia / Genera chiave di deploy.

Scheda Controlli per sito statico e app web: Scarica ultimi aggiornamenti da git in entrambi
Scheda Controlli per sito statico e app web: Scarica ultimi aggiornamenti da git in entrambi

Per comodità, il pulsante compare anche in altri due punti:

  • Sito statico — anche nella barra degli strumenti della scheda File (⤓ Scarica ultimi aggiornamenti da git), perché è lì che chi gestisce siti statici passa più tempo.
  • Entrambi i tipi — nella scheda Stato, quando ci sono nuovi commit da scaricare. Compare un banner "N commit indietro rispetto a origin" con accanto un pulsante Scarica ultimi aggiornamenti. Usa questa vista quando vuoi vedere esattamente cosa c'è in sospeso (numero di commit, SHA corrente e remoto) prima di scaricare gli aggiornamenti.
La scheda Stato mostra un banner "indietro di N commit" con un pulsante Scarica ultimi aggiornamenti
La scheda Stato mostra un banner "indietro di N commit" con un pulsante Scarica ultimi aggiornamenti

3. Faro esegue il pull

A questo punto se ne occupa la chat. Per un sito statico, eseguiamo git pull --ff-only e continua a servire il sito: non serve riavviare nulla. Per un'app web, installiamo anche eventuali nuove dipendenze (npm ci / pip install) e riavviamo l'app.

La chat mostra i passaggi del pull e il nuovo SHA del commit
La chat mostra i passaggi del pull e il nuovo SHA del commit

4. Fatto

La sezione Stato Git si aggiorna a "Sincronizzato" sul nuovo commit.

La scheda Stato ora mostra Sincronizzato sul nuovo commit
La scheda Stato ora mostra Sincronizzato sul nuovo commit

Se il sito non è stato distribuito da un repository git

Faro controlla prima e te lo dice in chat: "Questo sito non è stato distribuito da un repository git, quindi non c'è nulla da scaricare." Per sostituire i file, esegui di nuovo il deploy con Distribuisci un sito web dal tuo computer (o con l'equivalente per app web): trascina una nuova cartella sullo stesso sito e sostituiremo i file presenti.

Se il pull fallisce con "would be overwritten"

Usiamo git pull --ff-only, che rifiuta i merge non fast-forward. Se qualcosa ha modificato un file tracciato sul server — la scheda File, un client SFTP come FileZilla, una sessione SSH, persino l'app in esecuzione — il pull può fallire con "Your local changes would be overwritten by merge".

La sezione Stato Git nella scheda Stato ti mostra cosa è cambiato:

  • M = un file tracciato è stato modificato sul server. Va in conflitto con il pull. Usa il file del repository (scarta la modifica locale): esegui sudo git checkout -- <file> dal percorso del workload, poi riprova il pull.
  • ? = un file non tracciato (per esempio dati caricati dagli utenti in uploads/, file di runtime creati dall'app). Non va in conflitto: git pull lascia stare i file non tracciati. Non devi fare nulla.

Per i repository privati: prima genera una chiave di deploy

La prima volta che usi Scarica ultimi aggiornamenti su un repository privato, la credenziale HTTPS in cache non funziona per pull non presidiati. La soluzione è creare una chiave di deploy una sola volta.

  1. Nel pannello del servizio, clicca su Genera chiave di deploy (accanto a Scarica ultimi aggiornamenti).
  2. Faro genera una coppia di chiavi SSH sul server e ti mostra la chiave pubblica in chat.
  3. Incollala nelle impostazioni del repository → Deploy keys (GitHub) o SSH keys (GitLab, Bitbucket, Codeberg, Gitea). NON selezionare l'accesso in scrittura: ci basta la sola lettura.
  4. Rispondi done in chat: Faro cambia il remote git da HTTPS a SSH e lo testa.

Da quel momento, Scarica ultimi aggiornamenti funziona senza chiederti di nuovo le credenziali.

Chat con la generazione della chiave di deploy: Faro ti mostra la chiave pubblica da incollare nelle impostazioni del repository
Chat con la generazione della chiave di deploy: Faro ti mostra la chiave pubblica da incollare nelle impostazioni del repository

Deploy da monorepo / sottodirectory

Se hai fatto il deploy da una sottodirectory di un monorepo (per esempio apps/web), Scarica ultimi aggiornamenti funziona comunque: sparse-checkout se ne occupa dietro le quinte. Eseguiamo il pull nel clone persistente in /var/www/.helm-repos/<domain>/ (oppure in /opt/.helm-repos/<app>/ per un'app web nativa) e la directory di deploy è un symlink che riflette automaticamente i nuovi file.

Cambiare branch

Scarica ultimi aggiornamenti esegue il pull dal branch che hai clonato durante il deploy iniziale. Per passare a un branch diverso, ripeti il deploy dalla finestra modale e scegli il nuovo branch in Avanzate (git).