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.
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.
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.
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.
4. Fatto
La sezione Stato Git si aggiorna a "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): eseguisudo git checkout -- <file>dal percorso del workload, poi riprova il pull.?= un file non tracciato (per esempio dati caricati dagli utenti inuploads/, 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.
- Nel pannello del servizio, clicca su Genera chiave di deploy (accanto a Scarica ultimi aggiornamenti).
- Faro genera una coppia di chiavi SSH sul server e ti mostra la chiave pubblica in chat.
- 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.
- Rispondi
donein 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.
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).