Gestire i repository Git in Visual Studio
La finestra repository Git offre un'esperienza Git a schermo intero che consente di gestire il repository Git e di rimanere aggiornati sui progetti del team. Ad esempio, potrebbe essere necessario reimpostare, ripristinare o effettuare il cherry-pick dei commit, o semplicemente pulire la cronologia dei commit. La finestra repository Git è anche un ottimo posto per visualizzare e gestire le branche.
Il controllo della versione con Visual Studio è facile con Git. È anche possibile lavorare in remoto con il provider Git preferito, ad esempio GitHub o Azure DevOps. In alternativa, è possibile lavorare in locale senza provider.
Aprire la finestra Repository Git
Per aprire la finestra repository Git, scegliere Visualizza> repository Git oppure premere CTRL+0, CTRL+R) oppure premere CTRL+Q e in Funzionalitàcercare repository Git.
Spiegare il commit con GitHub Copilot Chat
Con Visual Studio 2022 versione 17.10 preview 2 e successive e le estensioni Di GitHub Copilot, è possibile usare l'intelligenza artificiale per generare una descrizione dettagliata del commit che descrive le modifiche apportate al commit. Premere il pulsante spiega per richiedere che GitHub Copilot crei una descrizione del commit. Per installare GitHub Copilot, vedere Installare e gestire GitHub Copilot in Visual Studio.
Modificare l'ultimo commit (amenda)
L'aggiornamento dell'ultimo commit viene chiamato modifica in Git ed è un caso d'uso comune. In alcuni casi è sufficiente aggiornare il messaggio di commit oppure potrebbe essere necessario includere una modifica dell'ultimo minuto.
È possibile modificare un commit nella riga di comando usando il comando seguente:
git commit --amend
La finestra del repository Git facilita l'aggiornamento del tuo messaggio di commit più recente. Aprire i dettagli del commit dell'ultimo commit facendo doppio clic su di esso e quindi selezionare l'opzione Modifica accanto al messaggio di commit.
Al termine della modifica del messaggio di commit, selezionare Modifica.
Se è necessario includere le modifiche del codice all'ultimo commit, è possibile farlo nella finestra Modifiche Git. Selezionare la casella di controllo Modifica e quindi eseguire il commit delle modifiche.
Per altre informazioni su come modificare i messaggi di commit diversi da quello più recente, vedere Git Tools - Rewriting History nel sito Web Git.
Eseguire il merge dei commit (squash)
Per unire una serie di commit, Git offre un'opzione per schiacciare i commit in un singolo commit. Questa opzione può essere utile se si effettuano commit frequenti e si verifica un lungo elenco di commit da pulire prima di eseguire il push in un repository remoto.
È possibile schiacciare due commit nella riga di comando usando il comando seguente:
git rebase -i HEAD~2
Aggiornare quindi pick
in squash
, salvare e aggiornare il messaggio di commit.
Per unire i commit in Visual Studio, usare il tasto CTRL per selezionare più commit da unire. Fare quindi clic con il pulsante destro del mouse e selezionare Squash Commits. Visual Studio combina automaticamente i messaggi di commit, ma a volte è preferibile fornire un messaggio aggiornato. Dopo aver esaminato e aggiornato il messaggio di commit, selezionare il pulsante Squash.
Per altre informazioni sullo squashing, vedere Git Tools - Rewriting History sul sito Web di Git.
Unire e ribasere i rami
Se si usano rami Git per lavorare su funzionalità diverse, è necessario includere gli aggiornamenti introdotti in altri rami. Questo problema può verificarsi mentre si sta ancora lavorando al ramo di funzionalità. Può anche capitare quando hai finito di lavorare sul tuo ramo di funzionalità e hai bisogno di mantenere le tue modifiche aggiungendole a un ramo differente. In Git è possibile includere questi aggiornamenti unendo o ribasando i rami.
Nota
Le istruzioni seguenti usano New_Feature come nome di esempio per un ramo di funzionalità. Sostituirlo con il nome del proprio ramo.
Per unire il ramo principale nel ramo di funzionalità nella riga di comando, usare i comandi seguenti:
git checkout New_Feature
git merge main
Per fare lo stesso in Visual Studio, controlla il feature branch facendo doppio clic su di esso nell'elenco dei rami. Quindi, fare clic con il pulsante destro del mouse su principale e selezionare Unisci 'main' in 'New_Feature'.
Per effettuare il rebase del ramo principale nel tuo ramo di funzionalità tramite la linea di comando, utilizza i seguenti comandi:
git checkout New_Feature
git rebase main
Per eseguire la stessa operazione in Visual Studio, seleziona il branch delle funzionalità facendo doppio clic su di esso nell'elenco dei rami. Fare clic con il tasto destro del mouse su main e selezionare Rebase 'New_Feature' su 'main'.
Per altre informazioni sul merge, il rebase e il branching in generale, vedere Git Branching sul sito web di Git.
Copia commit (cherry-pick)
Copiare i commit da un ramo a un altro usando l'opzione cherry-pick. A differenza di un merge o di un rebase, cherry-pick apporta solo le modifiche dai commit selezionati, anziché tutte le modifiche in un ramo. La selezione mirata è un ottimo modo per affrontare questi problemi comuni:
- Un commit accidentale nel ramo sbagliato. Cherry-pick le modifiche nel ramo corretto e quindi reimpostare il ramo originale sul commit precedente.
- Estrarre un set di commit effettuati in un ramo di funzionalità, per fonderli prima nel ramo principale.
- Importare commit specifici dal ramo principale senza ribasare il proprio ramo.
Per copiare le modifiche di un commit nel tuo ramo corrente usando la riga di comando, utilizzare il seguente comando:
git cherry-pick 7599e530
Per eseguire la stessa operazione in Visual Studio, visualizzare in anteprima il ramo da cui si vuole selezionare un commit selezionandolo con un solo clic. Fare quindi clic con il pulsante destro del mouse sul commit di destinazione e selezionare Cherry-Pick.
Al termine dell'operazione, Visual Studio visualizza un messaggio di operazione riuscita. Il commit che hai selezionato appare nella sezione in uscita.
Per altre informazioni sui commit di cherry-pick, vedere la pagina Web git per il comando cherry-pick.
Annulla le modifiche
Usare il comando revert per annullare le modifiche apportate nei commit inseriti nei rami condivisi. Il comando di ripristino crea un nuovo commit che annulla le modifiche apportate a un commit precedente. Il comando revert non riscrive la cronologia del repository, che rende più sicuro usarlo quando si lavora con altri utenti.
Per ripristinare le modifiche apportate in un commit tramite la riga di comando, usare i comandi seguenti. Sostituire l'ID di esempio con l'ID di un commit reale nel branch.
git revert 53333305
git commit
Nell'esempio precedente, i comandi annullano le modifiche apportate nel commit 53333305 e creano un nuovo commit nel ramo. Il commit originale è ancora presente nella cronologia Git. Per eseguire la stessa operazione in Visual Studio, fare clic con il pulsante destro del mouse sul commit da ripristinare e quindi selezionare Ripristina. Dopo aver confermato l'azione e completata l'operazione, Visual Studio visualizza un messaggio di operazione riuscita e un nuovo commit appare nella sezione in uscita.
Selezionare il nuovo commit per confermare che annulla le modifiche del commit annullato.
La Ripristina voce di menu potrebbe essere disattivata (disabilitata) in determinate circostanze, ad esempio per i commit di merge o quando è in esecuzione un'operazione Git.
Per altre informazioni sul ripristino delle modifiche, vedere la pagina Web di Git per il comando di ripristino.
Reimpostare un ramo a uno stato precedente
Usare il comando reset per riportare un ramo del tuo repository locale allo stato di un commit precedente. Questa azione elimina tutte le modifiche apportate dopo il commit a cui si sta reimpostando il ramo.
Avvertimento
Non reimpostare i rami condivisi, perché è possibile eliminare il lavoro di altre persone. Usare invece il comando revert.
Per reimpostare uno stato precedente di un ramo usando la riga di comando, usare il comando seguente. Sostituisci l'ID di esempio con l'ID di un commit reale nel tuo ramo.
git reset --hard 53333305
La parte --hard
del comando indica a Git di reimpostare i file sullo stato del commit precedente ed eliminare eventuali modifiche a fasi. Per eseguire la stessa operazione in Visual Studio, fare clic con il pulsante destro del mouse sul commit in cui si vuole reimpostare il ramo e quindi selezionare Reimposta>Elimina modifiche (-hard).
Per altre informazioni sulla reimpostazione dei rami, vedere la pagina Web Git per il comando reset.