Eseguire il commit dei file e visualizzare la cronologia

Completato

Dopo aver inizializzato il repository Git, è possibile iniziare ad aggiungere file. In questa unità si apprenderà come indicare a Git di tenere traccia delle modifiche apportate ai file nel repository.

Nota

I comandi riportati in questa unità vengono illustrati per spiegare i concetti. Non eseguire ancora i comandi. Presto sarà possibile provare quanto appreso.

Struttura di cartelle per il repository

Quando si usa un sistema di controllo della versione come Git, è importante pianificare come archiviare i file. È consigliabile avere una struttura di cartelle ben definita.

Se si crea codice Bicep per distribuire un'applicazione o un'altra soluzione, è anche consigliabile archiviare i file Bicep nello stesso repository del codice dell'applicazione e di altri file. In questo modo, ogni volta che qualcuno deve aggiungere una nuova funzionalità che cambia sia il codice Bicep che il codice dell'applicazione, le modifiche verranno monitorate insieme.

Grazie alla pianificazione della struttura di cartelle, risulta anche più facile distribuire la soluzione da una pipeline. Le pipeline verranno illustrate in un modulo futuro.

Team diversi hanno convenzioni diverse per quanto riguarda la configurazione delle cartelle e dei file del repository. Anche se non si lavora con un team, è comunque una buona idea decidere una convenzione da seguire. Una buona struttura di file e cartelle aiuterà chiunque debba lavorare con il codice in futuro.

Se il team non ha già una preferenza, ecco un suggerimento su come eseguire questa operazione:

  • Nella radice del repository creare un file README.md. Questo file di testo, scritto in Markdown, descrive i contenuti del repository e fornisce istruzioni per consentire ai membri del team di lavorare nel repository.
  • Nella radice del repository creare una cartella deploy. All'interno della cartella:
    • Archiviare il modello di Bicep principale, denominato main.bicep.
    • Creare una sottocartella modules in cui archiviare i moduli di Bicep.
    • Se sono presenti altri script o file usati durante le distribuzioni, archiviarli nella cartella deploy.
  • Nella radice del repository, creare una cartella src per il codice sorgente. Usare questa cartella per archiviare il codice dell'applicazione.
  • Nella radice del repository creare una cartella docs. Usare questa cartella per archiviare la documentazione relativa alla soluzione.

Ecco un'illustrazione di come potrebbe essere questa struttura per il sito Web dell'azienda di giocattoli:

Diagramma che illustra una gerarchia di cartelle.

Preparare le modifiche per il commit

Dopo aver apportato modifiche a uno o più file, è necessario prepararli per il commit. Questo processo indica a Git di considerare le modifiche sufficientemente importanti da mantenerle. Potrebbe sembrare un passaggio superfluo, ma la preparazione per il commit offre una flessibilità durante il lavoro. Ad esempio, è possibile apportare modifiche a più file, ma conservarne solo una. Oppure si può decidere di conservare solo alcune modifiche apportate a un file.

Per preparare un file per il commit, usare il comando git add e specificare il nome del file o della cartella in questione. Dopo aver preparato per il commit un file, Git riconosce che si potrebbe decidere di eseguire il commit delle modifiche. Quando si esegue una query sullo stato del repository usando git status, vengono visualizzate le modifiche preparate per il commit.

Importante

Dopo aver preparato un file per il commit, se si apportano altre modifiche prima del commit, Git non registra tali modifiche. È necessario preparare di nuovo il file per il commit affinché Git includa le modifiche più recenti.

Ad esempio, supponiamo di aver appena creato un modulo Bicep per definire un account Azure Cosmos DB. Il file è denominato cosmos-db.bicep ed è stato salvato nella cartella deploy/modules. Ecco come è possibile preparare il file per il commit:

git add deploy/modules/cosmos-db.bicep

È anche possibile preparare per il commit tutte le modifiche del repository eseguendo questo comando nella cartella radice del repository:

git add .

Eseguire il commit delle modifiche preparate

Un commit rappresenta un set di modifiche apportate a uno o più file nel repository. Quando si è pronti per eseguire il commit delle modifiche preparate, usare il comando git commit. Il commit include un messaggio di commit, che è una descrizione in formato leggibile delle modifiche.

Ecco un esempio che mostra come eseguire il commit delle modifiche preparate che si sono viste in precedenza:

git commit --message "Add Cosmos DB account definition"

Nota

Anche Visual Studio Code può eseguire il commit nel repository Git. Quando si usa l'integrazione Git in Visual Studio Code, se i file non sono già stati preparati per il commit, Visual Studio Code chiede se si vuole eseguire automaticamente questa operazione per tutti i file modificati. È anche possibile impostare questa opzione come comportamento predefinito. Oppure, se si preferisce, è possibile preparare manualmente i file per il commit usando la funzionalità Controllo del codice sorgente in Visual Studio Code.

Creare messaggi di commit brevi ma descrittivi. Quando si esaminerà la cronologia dei commit in futuro, ogni messaggio di commit dovrà illustrare la natura e il motivo della modifica.

Non esistono regole per il contenuto o il formato dei messaggi di commit. Per convenzione vengono tuttavia scritti al tempo presente e in una frase completa, come se si inserissero ordini nella codebase.

Suggerimento

È consigliabile scrivere messaggi di commit descrittivi anche quando si lavora autonomamente. Qualcun altro potrebbe avere la necessità di esaminare il codice in futuro. O comunque potrebbe essere necessario esaminare la propria cronologia e in questo modo risulterà più semplice.

Ecco alcuni esempi di messaggi di commit validi:

  • Aggiornata la configurazione del servizio app per aggiungere la configurazione di rete.
  • Rimosso l'account di archiviazione perché è stato sostituito da un database di Cosmos DB.
  • Aggiunta la definizione della risorsa di Application Insights e integrata l'app per le funzioni.

Visualizzare la cronologia di un file

Dopo aver eseguito il commit dei file nel repository Git, è possibile usare il comando git log dell'interfaccia della riga di comando per visualizzare la cronologia di un file o anche tutti i commit nel repository.

Per visualizzare un elenco di commit, eseguire il comando seguente:

git log --pretty=oneline

L'output di questo comando mostra un elenco dei commit, con quelli più recenti per primi. Ogni riga include l''hash del commit, ovvero un identificatore usato internamente da Git per tenere traccia di ogni commit. Include anche il messaggio di commit, che è uno dei motivi per cui è così importante scriverli.

È anche comune visualizzare i commit in un file specifico. È possibile specificare il nome del file quando si esegue il comando git log, come segue:

git log deploy/main.bicep

L'interfaccia della riga di comando di Git e il comando git log prevedono molti argomenti che è possibile usare per visualizzare informazioni sui commit e sui file. Tuttavia, spesso è più semplice usare Visual Studio Code visualizzare la cronologia dei commit per un file.

Nel riquadro Esplora risorse di Visual Studio Code è possibile selezionare e tenere premuto (o fare clic con il pulsante destro del mouse) un file nel repository e quindi scegliere Visualizza sequenza temporale. Viene visualizzato il riquadro Sequenza temporale con un elenco di ogni commit eseguito sul file. Quando si seleziona un commit, vengono visualizzate le modifiche apportate al file. Si vedrà come usare queste informazioni nell'esercizio successivo.