Salvare il lavoro con i commit
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018
Visual Studio 2022 | Visual Studio 2019 | Visual Studio 2017 | Visual Studio 2015
Git non crea automaticamente snapshot del lavoro quando 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 Azure Repos esercitazione su Git.
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 dopo l'ultimo commit ma non sono stati distribuiti 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 preparate.
I commit vengono creati nel repository Git locale. Ogni commit non deve essere perfetto e potrebbe essere necessario eseguire diversi commit per completare 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 padre, ma il commit successivo dopo un'unione di rami ha più elementi padre e il primo commit in un repository non ha nessuna.
- 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 esaminare 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 modificata del file nello snapshot, non la versione del file non modificata.
- Eseguire il passaggio dei file eliminati per segnalare a 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. Si tratta di una funzionalità utile quando si desidera modificare file diversi in commit diversi.
Visual Studio 2019 versione 16.8 e versioni successive offre un'esperienza di controllo della versione Git mantenendo l'interfaccia utente git di Team Explorer . Per usare Team Explorer, deselezionare Strumenti>Opzioni>anteprima Funzionalità>Nuova esperienza utente Git dalla barra dei menu. È possibile usare le funzionalità Git da entrambe le interfacce in modo intercambiabile. Di seguito viene fornito un confronto side-by-side delle modifiche apportate ai file.
Visual Studio Git
- 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 eseguire il staging di tutti i file modificati in una cartella, selezionare il segno più accanto alla cartella. Per eseguire il commit di tutti i file modificati nel repository, selezionare il segno più nell'angolo superiore destro della sezione Modifiche .
Visual Studio Team Explorer
- In Team Explorer selezionare il pulsante Home e scegliere Modifiche.
- Nella visualizzazione Modifiche 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 trascinandolo dalla sezione Modifiche alla sezione Modifiche a fasi . Per preparare tutti i file modificati in una cartella, fare clic con il pulsante destro del mouse sulla cartella e scegliere Fase. Per eseguire il commit di 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
Visual Studio 2019 non supporta le modifiche parziali di staging all'interno di un file. Visual Studio 2022 introduce tale funzionalità.
Come creare un commit
Visual Studio 2019 versione 16.8 e versioni successive offre un'esperienza di controllo della versione Git mantenendo l'interfaccia utente git di Team Explorer . Per usare Team Explorer, deselezionare Strumenti>Opzioni>anteprima Funzionalità>Nuova esperienza utente Git dalla barra dei menu. È possibile usare le funzionalità Git da entrambe le interfacce in modo intercambiabile. Di seguito viene fornito un confronto affiancato di come creare un commit.
Visual Studio Git
Nella finestra Modifiche Git immettere un messaggio che descrive le modifiche di gestione temporanea e quindi selezionare Commit a fasi.
Selezionare il collegamento commit per i dettagli del commit.
Come aggiornare l'ultimo commit
Git supporta la modifica dei file di gestione temporanea o del messaggio dell'ultimo commit. Questa operazione sostituisce l'ultimo commit con un nuovo commit che combina i file di staging da entrambi i commit e usa il nuovo messaggio di commit. La modifica di un commit è utile se si dimentica di preparare un file o l'ultimo messaggio di commit ha un errore di digitato.
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 risolve 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 2019 versione 16.8 e versioni successive offre un'esperienza di controllo della versione Git mantenendo l'interfaccia utente git di Team Explorer . Per usare Team Explorer, deselezionare Strumenti>Opzioni>anteprima Funzionalità>Nuova esperienza utente Git dalla barra dei menu. È possibile usare le funzionalità Git da entrambe le interfacce in modo intercambiabile. Di seguito viene fornito un confronto affiancato di come modificare un commit.
Visual Studio Git
Nella finestra Modifiche Git , facoltativamente, inserire un messaggio di commit, selezionare Modifica, quindi scegliere Commit a fasi.
La finestra Modifiche Git supporta la modifica del messaggio di commit, dei file di gestione temporanea o di entrambi. Quando si seleziona Modifica, viene visualizzato l'identificatore SHA per il commit precedente.
Visual Studio Team Explorer
Nella visualizzazione Modifiche di Team Explorer immettere un messaggio di commit nella fase di uno o più file e quindi scegliere Azioni > Modifica commit precedente.
Team Explorer non supporta la modifica del messaggio di commit senza modificare anche uno o più file di staging.