---
title: "Shopify CLI e GitHub: lavorare sul tema senza toccare il negozio online"
seo_title: "Shopify CLI e GitHub: sviluppare il tema in sicurezza"
description: "Il flusso per modificare un tema Shopify senza rischi: Shopify CLI, theme dev, tema non pubblicato, GitHub, Theme Check e pubblicazione controllata."
url: "https://salvatorepitone.it/shopify-cli-github-tema/"
type: "BlogPosting"
language: "it-IT"
published: "2026-10-26T17:53:56+01:00"
updated: "2026-10-26T19:03:56+01:00"
author: "Salvatore Pitone"
categories:
  - "Shopify"
tags:
  - "Shopify"
  - "shopify cli"
image: "https://salvatorepitone.it/wp-content/uploads/2026/10/shopify-cli-github-tema-copertina.webp"
---

Modificare il tema pubblicato direttamente dall’editor di codice di Shopify è come cambiare una gomma con l’auto in corsa. Il flusso che uso si basa invece su **Shopify CLI**, un tema di sviluppo, GitHub e un controllo automatico del codice prima di pubblicare.

Shopify CLI è lo strumento a riga di comando di Shopify per lavorare sui temi in locale. Con `shopify theme dev` vedi le modifiche in anteprima senza toccare il negozio online, con `theme check` trovi gli errori, con `theme push --unpublished` carichi una copia da approvare. GitHub tiene la storia di ogni modifica.

Ti mostro il flusso passo per passo, con i comandi corretti, come funziona l’integrazione con GitHub (comprese le modifiche fatte dall’editor) e come pubblico senza sorprese. Anche se non sei uno sviluppatore, ti serve per capire come lavora chi mette le mani nel tuo tema.

## Perché non si lavora sul tema pubblicato

Ogni salvataggio sul tema pubblicato è subito visibile ai clienti. Un errore in una sezione può nascondere il pulsante “Aggiungi al carrello” per minuti o per ore, finché qualcuno se ne accorge.

L’editor di codice di Shopify conserva una cronologia dei file (la vista Timeline), ma il [Centro assistenza](https://help.shopify.com/it/manual/online-store/themes/theme-structure/extend/edit-theme-code) avverte che è limitata e che le versioni più vecchie possono non essere disponibili. Non è un vero sistema di versioni.

Le regole che seguo sono semplici: **si lavora su una copia**, ogni modifica ha una storia, e il tema online cambia solo con una pubblicazione voluta. È una forma di sicurezza, come le altre che descrivo in [come rendere sicuro un sito web](https://salvatorepitone.it/come-rendere-sicuro-un-sito-web/).

![Flusso di lavoro su un tema Shopify: pull, anteprima locale, GitHub, Theme Check e pubblicazione](https://salvatorepitone.it/wp-content/uploads/2026/10/shopify-cli-github-tema-flusso.webp)

_Il flusso completo: dal tema pubblicato alla pubblicazione controllata._

## Installare Shopify CLI e collegarsi al negozio

Servono Node.js 22.12 o successivo, un gestore di pacchetti (npm, Yarn o pnpm) e Git 2.28 o successivo: requisiti verificati a ottobre 2026 sulla [documentazione di Shopify CLI](https://shopify.dev/docs/api/shopify-cli). Poi si installa la CLI:

`terminale`

```
# installa Shopify CLI
npm install -g @shopify/cli@latest

# controlla la versione installata
shopify version
```

Non serve un account Partner per lavorare sul tema di un negozio: basta un account del negozio (proprietario, staff o collaboratore) con il permesso **Temi**. Al primo comando la CLI apre il browser per l’accesso. Per i sistemi automatici c’è l’app Theme Access, che genera una password da passare con `--password`.

Il primo passo vero è scaricare il tema com’è oggi:

`terminale`

```
shopify theme pull --store=tuonegozio --live
```

`--store` accetta il prefisso del negozio (la parte prima di `.myshopify.com`) o l’indirizzo completo; `--live` scarica il tema pubblicato.

## theme dev: anteprima locale con ricarica

Con `shopify theme dev` la CLI carica i file su un **tema di sviluppo** e apre un’anteprima su `http://127.0.0.1:9292`. Ogni salvataggio si vede subito: le modifiche a CSS e sezioni senza nemmeno ricaricare la pagina, le altre con un aggiornamento automatico.

`terminale`

```
shopify theme dev --store=tuonegozio
```

Oltre all’anteprima locale, il comando restituisce un link all’editor e un link di anteprima da condividere. Alcune opzioni utili, tutte nella [documentazione di theme dev](https://shopify.dev/docs/api/shopify-cli/theme/theme-dev):

- `--theme-editor-sync`: riporta nei file locali le modifiche fatte nell’editor del tema di sviluppo;
- `--store-password`: serve se il negozio è protetto da password;
- `--live-reload=full-page`: ricarica sempre l’intera pagina.

Due cose da sapere: i temi di sviluppo vengono eliminati quando esci con `shopify auth logout`, e il checkout non si può provare dall’anteprima locale.

## GitHub collegato al tema

Shopify ha un’integrazione nativa con GitHub, descritta nella [documentazione ufficiale](https://shopify.dev/docs/storefronts/themes/tools/github). Si installa l’app Shopify GitHub, poi da **Negozio online > Temi > Aggiungi tema > Collega da GitHub** si scelgono account, repository e branch.

### Branch e temi

Ogni branch collegato diventa un tema nella libreria. L’impostazione che uso:

- `main` collegato al tema pubblicato: ciò che c’è su `main` è ciò che vedono i clienti;
- un branch per ogni lavoro (una nuova sezione, una campagna), collegato a un tema non pubblicato per l’anteprima;
- si unisce a `main` solo dopo controllo e approvazione.

Due vincoli da conoscere. Il branch deve avere la struttura standard di un tema: le cartelle che non la rispettano vengono ignorate, quindi niente `src` e `dist` nello stesso branch. E un branch scollegato non si può ricollegare allo stesso tema: viene aggiunto come tema nuovo.

### Le modifiche fatte dall’editor

Qui sta il punto che sorprende di più: la sincronizzazione va nei **due sensi**. Quando qualcuno salva una modifica nell’editor del tema o nell’editor di codice, Shopify fa un commit sul branch collegato, firmato dal bot `shopify`. Non si può disattivare.

Le personalizzazioni dell’editor finiscono nei file di impostazioni: `config/settings_data.json`, i template JSON e i section group. Per questo, prima di iniziare un lavoro, aggiorno sempre il mio branch con gli ultimi commit di `main`: altrimenti rischio di sovrascrivere i testi che il cliente ha appena cambiato.

Quando carico codice dalla CLI su un tema che il cliente sta già usando, escludo i file che lui modifica dall’editor. Lo faccio con `--ignore` sul singolo comando, oppure con un file `.shopifyignore` nella radice del tema, che accetta nomi di file, caratteri jolly ed espressioni regolari:

`terminale`

```
shopify theme push --theme="Revisione" --ignore "config/settings_data.json" --ignore "templates/*.json"
```

## Theme Check prima di pubblicare

[Theme Check](https://shopify.dev/docs/storefronts/themes/tools/theme-check) è il controllo automatico del codice di Shopify: trova errori di sintassi, template mancanti, variabili e snippet inutilizzati, tag sconosciuti o deprecati e problemi di prestazioni.

`terminale`

```
# controlla tutto il tema
shopify theme check

# crea il file di configurazione .theme-check.yml
shopify theme check --init

# corregge in automatico ciò che può
shopify theme check --auto-correct
```

Lo stesso controllo è integrato nell’estensione Shopify Liquid per Visual Studio Code, quindi vedo gli errori mentre scrivo. E con `shopify theme push --strict` la CLI si rifiuta di caricare il tema se Theme Check trova errori (gli avvisi sono ammessi).

Theme Check però non sostituisce la prova a mano: non sa se il pulsante è del colore giusto o se il carrello calcola bene la spedizione. Dopo il controllo automatico c’è sempre la mia revisione in anteprima.

## Pubblicare senza sorprese

![Comandi di Shopify CLI per scaricare, provare, controllare e pubblicare un tema Shopify in sicurezza](https://salvatorepitone.it/wp-content/uploads/2026/10/shopify-cli-github-tema-comandi.webp)

_I comandi di Shopify CLI nell’ordine in cui li uso._

L’ultimo passo è quello in cui si sbaglia di più, di solito per fretta. Il mio ordine:

1. carico il lavoro su un tema non pubblicato con `shopify theme push --unpublished --theme="Revisione"`, oppure uso `shopify theme share`, che crea un tema non pubblicato con un nome casuale e restituisce un link di anteprima;
2. mando il link di anteprima al cliente e aspetto il suo ok;
3. controllo pagina prodotto, collezioni, carrello e un ordine di prova;
4. riporto sulla copia le ultime modifiche fatte dall’editor sul tema pubblicato, così non si perdono;
5. pubblico con `shopify theme publish --theme="Revisione"`, che chiede conferma, oppure unendo il branch su `main` se uso GitHub;
6. tengo il tema precedente nella libreria: se qualcosa va storto, si ripubblica in un attimo.

Questo flusso è anche la base della manutenzione: aggiornamenti, piccole modifiche e correzioni passano tutti da qui. Se vuoi sapere quanto pesa sul budget, ne parlo in [quanto costa la manutenzione di un sito web](https://salvatorepitone.it/costo-manutenzione-sito-web/).

Se stai creando un tema nuovo, la struttura dei file è spiegata in [creare un tema Shopify da zero](https://salvatorepitone.it/creare-tema-shopify-da-zero/); se devi intervenire su un tema esistente, leggi prima [dove mettere le mani nel codice del tema Shopify](https://salvatorepitone.it/modificare-codice-tema-shopify/).

## Domande frequenti

### Serve un account Partner per usare Shopify CLI?

No. Per lavorare sul tema di un negozio basta un account con accesso al negozio e il permesso Temi: proprietario, staff o collaboratore. In alternativa si può usare una password generata dall’app Theme Access. L’account per sviluppatori serve per creare negozi di sviluppo e app, non per modificare il tema di un negozio esistente.

### Le modifiche dall’editor finiscono su GitHub?

Sì, se il tema è collegato a un branch. Ogni salvataggio nell’editor del tema o nell’editor di codice diventa un commit sul branch, firmato dal bot di Shopify, e la sincronizzazione non si può disattivare. Per questo, prima di iniziare un lavoro, aggiorno il mio branch con gli ultimi commit e non sovrascrivo le modifiche del cliente.

### Posso tornare a una versione precedente del tema?

Sì. Con GitHub ogni modifica è un commit: puoi annullarla o tornare a qualsiasi versione precedente. Senza GitHub hai la cronologia dei file nell’editor di codice, che però è limitata nel tempo, e le copie del tema nella libreria. Per questo, prima di pubblicare, tengo sempre il tema precedente come riserva.

### Theme Check trova tutti gli errori?

No. Trova errori di sintassi, riferimenti mancanti, codice inutilizzato e alcune cattive pratiche di prestazioni, ma non vede problemi grafici, di contenuto o di logica del negozio. È un primo filtro automatico, utilissimo: la prova a mano in anteprima, su desktop e su mobile, resta comunque indispensabile.

## Conclusione

Shopify CLI, un tema di sviluppo, GitHub e Theme Check: insieme trasformano le modifiche al tema da salto nel buio a lavoro controllato. Il negozio online cambia solo quando lo decidi tu, e ogni passo si può annullare.

Se stai progettando un negozio nuovo o una migrazione, trovi come lavoro in [realizzazione e migrazione Shopify](https://salvatorepitone.it/realizzazione-e-migrazione-shopify/).

Hai paura di toccare il tema? Posso impostare io il flusso con GitHub e copia di sicurezza, nella mia [**assistenza e manutenzione del negozio online**](https://salvatorepitone.it/assistenza-e-manutenzione-negozio-online/). Oppure scrivimi dalla [pagina contatti](https://salvatorepitone.it/contatti/): ti rispondo io.
