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.
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
- Visual Studio 2019 - Menu Git
- Visual Studio 2019 - Team Explorer
- Riga di comando Git
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.
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
- Visual Studio 2022
- Visual Studio 2019 - Menu Git
- Visual Studio 2019 - Team Explorer
- Riga di comando Git
Nella finestra Modifiche Git immettere un messaggio che descrive le modifiche di staging e quindi selezionare Commit stagingd.
Selezionare il collegamento commit per i dettagli del commit.
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.
- Visual Studio 2022
- Visual Studio 2019 - Menu Git
- Visual Studio 2019 - Team Explorer
- Riga di comando Git
Nella finestra Modifiche Git, facoltativamente, immettere un messaggio di commit, selezionare Modifica e quindi scegliere Commit a fasi.
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.