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 con i progetti del team. Ad esempio, potrebbe essere necessario reimpostare, ripristinare o rimuovere i commit di cherry-pick o semplicemente pulire la cronologia dei commit. La finestra Repository Git è anche ideale per visualizzare e gestire i rami.
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 (o premere CTRL 0, CTRL++R) oppure premere CTRL+Q e in Funzionalità cercare repository Git.
Spiegare un 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 (modifica)
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 Repository Git semplifica l'aggiornamento del 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 (Strumenti Git - Cronologia riscrittura) 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 pick
quindi 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 Commit di squash. 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 (Strumenti Git - Cronologia riscrittura) nel sito Web 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ò verificarsi anche quando si lavora sul ramo di funzionalità ed è necessario mantenere le modifiche aggiungendole a un ramo diverso. 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 eseguire la stessa operazione in Visual Studio, vedere il ramo delle funzionalità facendo doppio clic sull'elenco dei rami. Fare quindi clic con il pulsante destro del mouse su main e scegliere Unisci 'main' in 'New_Feature'.
Per eseguire nuovamente il database principale nel ramo di funzionalità nella riga di comando, usare i comandi seguenti:
git checkout New_Feature
git rebase main
Per eseguire la stessa operazione in Visual Studio, vedere il ramo delle funzionalità facendo doppio clic sull'elenco dei rami. Fare quindi clic con il pulsante destro del mouse su main e selezionare Rebase 'New_Feature' in 'main'.
Per altre informazioni sull'unione, la ribasatura e la diramazione in generale, vedere Git Branching nel sito Web 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 una ribase, cherry-pick apporta solo le modifiche dai commit selezionati, anziché tutte le modifiche in un ramo. Cherry-pick è un ottimo modo per affrontare questi problemi comuni:
- Commit accidentale nel ramo errato. Cherry-pick le modifiche nel ramo corretto e quindi reimpostare il ramo originale sul commit precedente.
- Eseguire il pull di un set di commit eseguiti in un ramo di funzionalità, in modo da eseguirne il merge prima nel ramo principale.
- Conversione in commit specifici dal ramo main senza ribasare il ramo.
Per copiare le modifiche da un commit a Current Branch usando la riga di comando, usare il comando seguente:
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 scegliere Cherry-Pick.
Al termine dell'operazione, Visual Studio visualizza un messaggio di operazione riuscita. Il commit selezionato viene visualizzato nella sezione In uscita .
Per altre informazioni sui commit di cherry-pick, vedere la pagina Web Git per il comando cherry-pick.
Annulla 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 ramo.
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 scegliere Ripristina. Dopo aver verificato che l'azione e l'operazione è stata completata, Visual Studio visualizza un messaggio di operazione riuscita e viene visualizzato un nuovo commit nella sezione In uscita .
Selezionare il nuovo commit per confermare che annulla le modifiche del commit ripristinato.
Per altre informazioni sul ripristino delle modifiche, vedere la pagina Web Git per il comando di ripristino.
Reimpostare uno stato precedente di un ramo
Usare il comando reset per riportare un ramo nel repository locale al contenuto di un commit precedente. Questa azione elimina tutte le modifiche apportate dopo il commit a cui si sta reimpostando il ramo.
Avviso
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. Sostituire l'ID di esempio con l'ID di un commit reale nel ramo.
git reset --hard 53333305
La --hard
parte del comando indica a Git di reimpostare i file nello 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 scegliere Reimposta elimina modifiche (-hard).To do the same in Visual Studio, right-click the commit that you want to reset your branch to, and then select Reset>Delete Changes (--hard).
Per altre informazioni sulla reimpostazione dei rami, vedere la pagina Web Git per il comando di reimpostazione.