Condividi tramite


Salva il tuo 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 aggiungendo modifiche specifiche all'area di staging. Dopo la preparazione, salva lo snapshot eseguendo un commit.

Questo articolo illustra le procedure per le attività seguenti:

  • Come Git tiene traccia delle modifiche
  • Cosa contiene un commit
  • Come preparare le modifiche
  • Come creare un commit
  • Come aggiornare l'ultimo commit

Per una panoramica del flusso di lavoro Git, vedere il tutorial Git di Azure Repos.

Prerequisiti

Categoria Requisiti
Accesso al progetto Membro di un progetto.
Autorizzazioni - Visualizzare il codice nei progetti privati: almeno livello di accesso Basic .
- Clonare o contribuire al codice nei progetti privati: membro del gruppo di sicurezza Contributors o con autorizzazioni corrispondenti nel progetto.
- Impostare le autorizzazioni per il ramo o il repository: Gestisci le autorizzazioni per il ramo o il repository.
- Modificare il ramo predefinito: Modificare le politiche le autorizzazioni per il repository.
- Importare un repository: membro del gruppo di sicurezza amministratori del progetto o autorizzazione a livello di progetto Git Crea repository impostata su Consenti. Per altre informazioni, vedere Impostare le autorizzazioni del repository Git.
Servizi Repos abilitato.
Strumenti Opzionale. Usare i comandi az repos: l'interfaccia della riga di comando di Azure DevOps.

Nota

Nei progetti pubblici, gli utenti con accesso Stakeholder hanno pieno accesso ad Azure Repos, compresa la visualizzazione, la clonazione e il contribuire al codice.

Categoria Requisiti
Accesso al progetto Membro di un progetto.
Autorizzazioni - Visualizzare il codice: almeno accesso di base.
- Clonare o contribuire al codice: membro del gruppo di sicurezza Contributor o autorizzazioni corrispondenti nel progetto.
Servizi Repos abilitato.

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 che hai modificato dall'ultimo commit ma che non hai ancora preparato per il commit successivo.
  • File in staged: i file che hai modificato dall'ultimo commit e che hai preparato per il commit successivo.

Screenshot che mostra il ciclo di vita dei file nel tuo repo 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 dei nuovi file né li include nello snapshot finché non vengono aggiunti all'indice.

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. Crea commit mentre lavori e, quando hai finito, puoi pushare i tuoi commit in un repository remoto per condividere il lavoro con altri.

Cosa contiene 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 di passare rapidamente tra i 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. Inserisci il messaggio quando crei 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 apportate al codice, è possibile esaminare la cronologia git del repository.

Come preparare le modifiche

Per creare uno snapshot di un commit:

  • Aggiungi i nuovi file allo stage per comunicare a Git di volerli aggiungere allo snapshot e si vuole che Git tenga traccia delle modifiche apportate a tali file in futuro.
  • Fase file modificati per informare Git di volere la versione del file modificata nello snapshot, non la versione non modificata del file.
  • Nel passo , hai inserito i file eliminati per comunicare a Git che vuoi che vengano rimossi dallo snapshot e non siano più tracciati.

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 Stage per aggiungerlo alla sezione Staged Changes.

Screenshot dell'opzione Modifiche nella finestra

In alternativa, puoi gestire 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 aggiungere 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 selezionando Ignora questo elemento locale o Ignora questa estensione. Entrambi i comandi creano un file .gitignore nel repository, se non esiste, e aggiungono una voce. I file ignorati non verranno visualizzati nella sezione Modifiche in Visual Studio. Tuttavia, il file .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 modelli di .gitignore per vari ambienti di sviluppo da GitHub gitignore repository.

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 ulteriori informazioni, vedere Staging delle 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 link del commit per vedere i dettagli.

Screenshot che mostra il collegamento dei dettagli del commit alla finestra

Nota

Se tutte le modifiche non sono messe in pausa, è possibile ignorare la gestione temporanea e fare il commit direttamente 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. Modificare un commit è utile se si dimentica di inserire un file nello stage o se l'ultimo messaggio di commit contiene un errore di battitura.

Avvertimento

Non modificare un già sottoposto a push commit 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 che è stato pushato, 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, preparare uno o più file, immettere un messaggio di commit, selezionare Modificae quindi scegliere Conferma file preparati.

Screenshot che mostra l'opzione

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

Passaggi successivi