Annulla le modifiche

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

Visual Studio 2019 | Visual Studio 2022

Quando si desidera annullare le modifiche in un repository Git, decidere prima di tutto il tipo di modifiche da annullare. Può, ad esempio, essere necessario:

  • Rimuovere le modifiche di cui non è stato eseguito il commit in un file ripristinando la versione dell'ultima versione di cui è stato eseguito il commit. È anche possibile ripristinare un file in qualsiasi versione di cui è stato eseguito il commit.
  • Ripristinare uno stato precedente di un ramo reimpostandolo su un commit precedente.
  • Annullare le modifiche apportate da un commit condiviso creando un nuovo commit che inverte le modifiche. Poiché questo approccio non riscriverà la cronologia dei commit esistenti, è adatto per ripristinare le modifiche apportate dai commit di cui è stato eseguito il push e che sono in uso da altri utenti.
  • Modificare l'ultimo commit per modificarne il contenuto o il messaggio. Per altre informazioni, vedere Come aggiornare l'ultimo commit.
  • Risolvere un problema introdotto in un commit precedente creando un nuovo commit che include la correzione. Per altre informazioni, vedere Come creare un commit.

In questo articolo viene spiegato come:

  • Rimuovere le modifiche di cui non è stato eseguito il commit in un file
  • Ripristinare uno stato precedente di un ramo
  • Annullare le modifiche apportate da un commit condiviso

Rimuovere le modifiche di cui non è stato eseguito il commit in un file

Se sono state apportate modifiche a un file ma non è stato eseguito il commit di tali modifiche, è possibile usare Git checkout per eliminare rapidamente le modifiche e ripristinare l'ultima versione di cui è stato eseguito il commit.

Git checkout può anche ripristinare un file in qualsiasi versione di cui è stato eseguito il commit quando si specifica l'ID commit.

Avviso

Se è possibile riapplicare le modifiche che Git checkout eliminerebbe, prendere in considerazione l'eliminazione di tali modifiche.

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 .

Visual Studio supporta l'eliminazione delle modifiche di cui non è stato eseguito il commit in un file ripristinando l'ultima versione di cui è stato eseguito il commit.

Nella finestra Modifiche Git identificare il file con le modifiche da rimuovere. Se il file si trova nella sezione Modifiche a fasi, fare clic con il pulsante destro del mouse e scegliere Annulla scena. I file non installati vengono visualizzati nella sezione Modifiche .

Screenshot delle opzioni del menu di scelta rapida per i file di staging in Visual Studio.

Se il file si trova nella sezione Modifiche , fare clic con il pulsante destro del mouse e scegliere Annulla modifiche per annullare tutte le modifiche apportate al file dall'ultimo commit.

Screenshot delle opzioni del menu di scelta rapida per i file modificati in Visual Studio.

Ripristinare uno stato precedente di un ramo

È possibile ripristinare uno stato precedente di un ramo usando la reimpostazione Git per reimpostare il ramo su un commit precedente. Git reset influisce su tutti i file in tutte le cartelle dei rami.

Git reset offre alcune opzioni. L'opzione predefinita consiste nel ripristinare il ramo a un commit precedente, ma mantenere tutte le modifiche successive come modifiche di cui non è stato eseguito il commit. Un'altra opzione consiste nel ripristinare un ramo a un commit precedente rimuovendo tutte le modifiche apportate a tutti i file di ramo in quanto tale commit.

Avviso

Non reimpostare un ramo su un commit prima dell'ultimo commit se l'ultimo commit è stato sottoposto a push e condiviso con altri utenti. In questo modo, la cronologia dei rami locali non corrisponde più alla cronologia dei rami remoti. Per i rami condivisi, vedere Annullare le modifiche apportate da un commit condiviso.

  1. Nella barra dei menu scegliere Git View Branch History (Visualizza cronologia ramo Git>) per aprire la scheda Cronologia per current branch.

    Screenshot dell'opzione Visualizza cronologia rami nel menu Git in Visual Studio.

  2. Nella scheda Cronologia per current branch fare clic con il pulsante destro del mouse sul commit che si desidera reimpostare e quindi scegliere Reimposta > elimina modifiche (-hard) per reimpostare il ramo sul commit selezionato ed eliminare tutte le modifiche apportate a tutti i file di ramo dopo il commit. In alternativa, scegliere Ripristina > mantieni modifiche (-misto) per reimpostare il ramo sul commit selezionato e conservare tutte le modifiche successive come modifiche non preparate.

    Screenshot dell'opzione Reimposta nel menu di scelta rapida per un commit nella finestra Cronologia in Visual Studio.

Annullare le modifiche apportate da un commit condiviso

È possibile annullare le modifiche apportate da un commit usando Git per creare un nuovo commit che inverte tali modifiche. Git revert non elimina il commit originale. Questo approccio è adatto per annullare le modifiche apportate da un commit condiviso perché Git revert non modifica la cronologia del commit precedente e quindi le cronologie dei rami locali e remote continuano a corrispondere.

  1. Nella barra dei menu scegliere Git View Branch History (Visualizza cronologia ramo Git>) per aprire la scheda Cronologia per current branch.

    Screenshot dell'opzione Visualizza cronologia rami nel menu Git in Visual Studio.

  2. Nella scheda Cronologia per current branch fare clic con il pulsante destro del mouse sul commit che si desidera ripristinare e scegliere Ripristina per creare un nuovo commit che annulla le modifiche apportate dal commit selezionato.

    Screenshot dell'opzione Ripristina nel menu di scelta rapida per un commit nella finestra Cronologia in Visual Studio.

Passaggi successivi