Salvare il lavoro con i commit

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Git non crea automaticamente snapshot del lavoro mentre si modificano i file nel repository. È possibile indicare a Git quali modifiche ai file si vuole acquisire in uno snapshot eseguendo la gestione temporanea di modifiche specifiche. Dopo la gestione temporanea, salvare lo snapshot eseguendo un commit.

Questo articolo illustra le procedure per le attività seguenti:

  • Come Git tiene traccia delle modifiche
  • Che cos'è in un commit
  • Come preparare le modifiche
  • Come creare un commit
  • Come aggiornare l'ultimo commit

Per una panoramica del flusso di lavoro Git, vedere Esercitazione su Git di Azure Repos.

Come Git tiene traccia delle modifiche

Mentre si lavora nel repository, Git tiene traccia delle modifiche apportate a tutti i file rilevati . I file rilevati sono file attualmente in fase o inclusi nel commit precedente. Git separa i file rilevati in tre categorie:

  • File non modificati: i file non modificati dall'ultimo commit.
  • File modificati: i file modificati dall'ultimo commit ma non sono stati gestiti per il commit successivo.
  • File di staging: i file modificati dopo l'ultimo commit e la gestione temporanea per il commit successivo.

Screenshot che mostra il ciclo di vita dei file nel repository tra i tre stati.

Quando si crea un commit, vengono usati solo file di staging e file non modificati per lo snapshot. Le modifiche non salvate ai file modificati vengono mantenute, ma lo snapshot contiene la versione non modificata di tali file. Git non tiene traccia delle modifiche apportate ai nuovi file o non include nuovi file nello snapshot fino a quando non vengono inseriti nella fase.

I commit vengono creati nel repository Git locale. Ogni commit non deve essere perfetto e potrebbe essere necessario eseguire diversi commit per eseguire una modifica prevista. Creare commit mentre si lavora e, al termine, è possibile eseguire il push dei commit in un repository remoto per condividere il lavoro con altri utenti.

Che cos'è in un commit

Ogni commit include le informazioni seguenti:

  • Snapshot di tutti i file rilevati nel repository al momento del commit. Uno snapshot non è la differenza tra i commit, anche se Git usa gli snapshot per calcolare la differenza. Gli snapshot consentono il passaggio rapido tra rami e supportano l'unione dei rami.
  • Riferimento ai commit padre. La maggior parte dei commit ha un elemento padre, ma il commit successivo dopo un'unione di rami ha più elementi padre e il primo commit in un repository non ha nessuno.
  • Messaggio che descrive le modifiche nel commit. Immettere il messaggio quando si crea il commit.

Git usa gli snapshot e i riferimenti padre di ogni commit per mantenere un record completo di sviluppo nel repository. Per analizzare le modifiche nel codice, è possibile esaminare la cronologia Git del repository.

Come preparare le modifiche

Per creare uno snapshot per un commit:

  • Preparare i nuovi file per informare Git di volerli aggiunti allo snapshot e si vuole che Git tengono traccia delle modifiche apportate a tali file in futuro.
  • Eseguire la fase dei file modificati per informare Git di volere la versione del file modificata nello snapshot, non la versione del file non modificata.
  • Preparare i file eliminati per informare Git di volerli rimossi dallo snapshot e non più rilevati.

Per escludere file temporanei, file di log o altri file dallo snapshot, è possibile configurare Git per ignorare file specifici.

Nota

Git supporta lo staging interattivo dei file modificati in modo da poter scegliere di organizzare modifiche specifiche all'interno di un file. Questa è una funzionalità utile quando si desidera modificare file diversi in commit diversi.

Visual Studio 2022 offre un'esperienza di controllo della versione Git usando il menu Git, Le modifiche Git e tramite i menu di scelta rapida in Esplora soluzioni. Visual Studio 2019 versione 16.8 offre anche l'interfaccia utente Git di Team Explorer . Per altre informazioni, vedere la scheda Visual Studio 2019 - Team Explorer .

Nella finestra Modifiche Git fare clic con il pulsante destro del mouse su un file nella sezione Modifiche e scegliere Fase per aggiungerlo alla sezione Modifiche a fasi.

Screenshot dell'opzione Modifiche nella finestra

In alternativa, è possibile preparare un file modificato selezionando il segno più accanto al file. Per preparare tutti i file modificati in una cartella, selezionare il segno più accanto alla cartella. Per preparare tutti i file modificati nel repository, selezionare il segno più nell'angolo superiore destro della sezione Modifiche .

È possibile indicare a Git di ignorare un file facendo clic con il pulsante destro del mouse e scegliendo Ignora questo elemento locale o Ignora questa estensione. Entrambi i comandi creano un file con estensione gitignore nel repository, se non esiste, e aggiunge una voce. I file ignorati non verranno visualizzati nella sezione Modifiche in Visual Studio. Tuttavia, il file con estensione gitignore non ha alcun effetto sui file rilevati. Per informazioni su come configurare Git per ignorare i file rilevati, vedere Ignorare i file. Per risparmiare tempo, è possibile scaricare i modelli .gitignore per vari ambienti di sviluppo dal repository GitHub gitignore .

Nota

A partire da Visual Studio 2022 versione 17.3, Visual Studio supporta la gestione temporanea delle modifiche parziali all'interno di un file. Per altre informazioni, vedere Fasi di righe di codice in Visual Studio.

Come creare un commit

Nella finestra Modifiche Git immettere un messaggio che descrive le modifiche di staging e quindi selezionare Commit stagingd.

Screenshot che mostra il collegamento alle informazioni sul commit in Visual Studio.

Selezionare il collegamento commit per i dettagli del commit.

Screenshot che mostra il collegamento dei dettagli del commit alla finestra

Nota

Se tutte le modifiche non sono installate, è possibile ignorare la gestione temporanea e il commit diretto scegliendo Commit tutto.

Screenshot dell'opzione 'Commit All' nella finestra 'Git Changes' in Visual Studio.

Come aggiornare l'ultimo commit

Git supporta la modifica dei file di staging o del messaggio dell'ultimo commit. Questa operazione sostituisce l'ultimo commit con un nuovo commit che combina i file di staging di entrambi i commit e usa il nuovo messaggio di commit. Il commit è utile se si dimentica di preparare un file o l'ultimo messaggio di commit ha un errore di digitatura.

Avviso

Non modificare un commit già sottoposto a push perché causerà problemi di sincronizzazione con il repository remoto. Per un commit push, usare una di queste strategie:

  • Creare ed eseguire il push di un altro commit che corregge i problemi causati dal commit precedente.
  • Annullare il commit precedente di cui è stato eseguito il push usando git revert per creare un nuovo commit che ripristina tutte le modifiche apportate dal commit precedente. Eseguire quindi il push del nuovo commit.

Nella finestra Modifiche Git, facoltativamente, immettere un messaggio di commit, selezionare Modifica e quindi scegliere Commit a fasi.

Screenshot che mostra l'opzione

La finestra Modifiche Git supporta il commit del messaggio di commit, i file di staging o entrambi. Quando si seleziona Modifica, viene visualizzato l'identificatore SHA per il commit precedente.

Passaggi successivi