Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Git usa metadati di commit come collegamenti padre, dettagli dell'autore e timestamp per tenere traccia della cronologia delle modifiche in un repository. È possibile esaminare la cronologia Git per scoprire quando i file sono stati modificati, chi li ha modificati e quali modifiche sono state apportate.
Quando gli utenti creano e uniscono rami di funzionalità in un ramo di destinazione usando richieste pull, la cronologia di sviluppo del ramo di destinazione potrebbe non essere una linea cronologica retta. Pertanto, quando si esamina la cronologia delle modifiche apportate a un file nel ramo di destinazione, tenere presente che l'ordine dei commit è influenzato dalla strategia di unione e dalla data di unione, non solo dalla data originale delle modifiche. Ad esempio, il commit più recente nel main ramo può introdurre una modifica apportata settimane fa in un ramo di funzionalità appena unito nel main ramo usando un'unione a tre vie.
Quando si vuole capire come e quando si è verificata una modifica di file specifica, potrebbe essere necessario confrontare versioni diverse dello stesso file da commit diversi, possibilmente in rami diversi.
Il sito del progetto team di Azure DevOps consente di confrontare due versioni dello stesso file dai commit nello stesso ramo, ma non supporta il confronto delle versioni dei file tra rami.
Dal Web browser aprire il progetto team per l'organizzazione Azure DevOps. Nella visualizzazione File di repository > selezionare un file e scegliere la scheda Confronta.
Nella scheda Confronta scegliere i due commit che contengono le versioni di file da confrontare. La visualizzazione diff mostra le righe di file nuove, eliminate o modificate.
Nota
GitHub consente di confrontare due versioni dello stesso file da commit diversi in rami diversi. Per confrontare, aggiungere /compare/<commit1>..<commit2> all'URL del repository GitHub per passare alla pagina di confronto. La pagina di confronto contiene una visualizzazione diff di ogni file diverso. Per altre informazioni sul confronto dei commit in GitHub, vedere Confronto dei commit.
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 consente di confrontare due versioni dello stesso file nello stesso ramo, ma non supporta il confronto delle versioni dei file tra rami.
In Esplora soluzioni selezionare un file e scegliere Cronologia visualizzazione Git > dal menu di scelta rapida del file per aprire la scheda Cronologia Git per il file selezionato.
Nella scheda Cronologia Git scegliere Confronta con precedente dal menu di scelta rapida di un commit per aprire una scheda Diff che confronta il commit selezionato con il commit precedente.
In alternativa, selezionare due commit e scegliere Confronta dal menu di scelta rapida del commit per aprire una scheda Diff che confronta i due commit selezionati.
La scheda Diff mostra le righe di file nuove, eliminate o modificate.
Visual Studio 2019 offre un'esperienza di controllo della versione Git usando il menu Git, Le modifiche Git e i menu di scelta rapida in Esplora soluzioni.
Visual Studio consente di confrontare due versioni dello stesso file nello stesso ramo, ma non supporta il confronto delle versioni dei file tra rami.
In Esplora soluzioni selezionare un file e scegliere Cronologia visualizzazione Git > dal menu di scelta rapida del file per aprire la scheda Cronologia Git per il file selezionato.
Nella scheda Cronologia Git scegliere Confronta con precedente dal menu di scelta rapida di un commit per aprire una scheda Diff che confronta il commit selezionato con il commit precedente.
In alternativa, selezionare due commit e scegliere Confronta dal menu di scelta rapida del commit per aprire una scheda Diff che confronta i due commit selezionati.
La scheda Diff mostra le righe di file nuove, eliminate o modificate.
Team Explorer non fornisce supporto per questa funzionalità.
Il comando git diff può confrontare versioni diverse dello stesso file da commit diversi in rami diversi. Il comando git log consente di identificare i commit che contengono le versioni di file da confrontare.
Usare git log e specificare un file per elencare i commit che hanno modificato il file:
git log <file>
Per impostazione predefinita, l'output del comando inizia con il commit più recente nel ramo corrente e quindi scorre indietro i commit predecessori (indipendentemente dal ramo) seguendo i collegamenti padre nei metadati di ogni commit.
Ecco un esempio di output per il comando git log index.html:
L'output mostra che una riga è stata eliminata e che è stata aggiunta una riga.
Limitare l'output del log Git
Per limitare] i commit elencati git log , è possibile filtrare in base a autore, data, messaggio, contenuto modificato e altro ancora. Ad esempio:
git log --author=frank@fabrikam.com index.html elenca solo i commit dall'autore specificato.
git log --since="2022-5-1" elenca solo i commit creati dopo la data specificata.
git log --before="yesterday" elenca solo i commit creati prima della data relativa specificata.
git log --grep="css change" elenca solo i commit con il testo specificato nel messaggio.
git log -S"myVariable" elenca solo i commit che introducono o rimuovono la stringa specificata.
git log -G"myVar.*" elenca solo i commit che introducono o rimuovono la stringa regex specificata.
git log -3 elenca solo gli ultimi tre commit.
Formattare l'output del log Git
Sono disponibili diverse opzioni di formato per l'elenco di commit. Ad esempio:
git log --abbrev-commit elenca i commit usando un ID abbreviato (checksum SHA-1).
git log --oneline elenca ogni commit in un formato abbreviato a riga singola.
git log --patch index.html elenca ogni commit insieme a una diff delle modifiche.
Ripristinare i file
È possibile ripristinare una versione specifica di un file dalla cronologia Git, anche se il file è stato modificato, eliminato o rinominato in un commit successivo. Il ripristino di una versione precedente di un file non crea un nuovo commit con la modifica. Per aggiornare il ramo con la versione del file ripristinata, è necessario eseguire il commit della modifica.
Il sito del progetto team di Azure DevOps consente di ripristinare tutte le modifiche apportate da un commit specifico, ma non supporta il ripristino delle modifiche apportate a un file specifico all'interno del commit.
Visual Studio consente di confrontare due versioni dello stesso file nello stesso ramo, ma non supporta il confronto delle versioni dei file tra rami.
In Esplora soluzioni selezionare un file e scegliere Cronologia visualizzazione Git > dal menu di scelta rapida del file per aprire la scheda Cronologia Git per il file selezionato.
Nella scheda Cronologia Git scegliere Confronta con precedente dal menu di scelta rapida di un commit per aprire una scheda Diff che confronta il commit selezionato con il commit precedente.
In alternativa, selezionare due commit e scegliere Confronta dal menu di scelta rapida del commit per aprire una scheda Diff che confronta i due commit selezionati.
La scheda Diff mostra le righe di file nuove, eliminate o modificate.
Visual Studio consente di confrontare due versioni dello stesso file nello stesso ramo, ma non supporta il confronto delle versioni dei file tra rami.
In Esplora soluzioni selezionare un file e scegliere Cronologia visualizzazione Git > dal menu di scelta rapida del file per aprire la scheda Cronologia Git per il file selezionato.
Nella scheda Cronologia Git scegliere Confronta con precedente dal menu di scelta rapida di un commit per aprire una scheda Diff che confronta il commit selezionato con il commit precedente.
In alternativa, selezionare due commit e scegliere Confronta dal menu di scelta rapida del commit per aprire una scheda Diff che confronta i due commit selezionati.
La scheda Diff mostra le righe di file nuove, eliminate o modificate.
Visual Studio 2019 versione 16.8 e versioni successive offre un'esperienza di controllo della versione Git mantenendo al tempo stesso l'interfaccia utente git di Team Explorer . Per usare Team Explorer, deselezionare Strumenti>Opzioni>anteprima Funzionalità>Nuova esperienza utente Git dalla barra dei menu.
In Esplora soluzioni selezionare un file e scegliere Cronologia visualizzazione Git > dal menu di scelta rapida del file per aprire una scheda Cronologia Git per il file selezionato.
Nella scheda Cronologia Git selezionare un commit e scegliere Visualizza dettagli commit dal menu di scelta rapida del commit per aprire la visualizzazione Dettagli commit.
Nella visualizzazione Dettagli commit selezionare il file e scegliere Apri dal menu di scelta rapida del file per aprire la versione precedente del file in una nuova scheda.
Scegliere File > Salva con nome dalla barra dei menu per salvare la versione ripristinata del file.
È possibile usare i comandi git checkout o git show per ripristinare una versione specifica di un file dalla cronologia Git.
Git checkout ripristina un file a una versione di cui è stato eseguito il commit in precedenza se si specifica il file e un commit:
git checkout <commit> <file>
Ad esempio, git checkout 85435fac src/app.ts ripristina la versione del src/app.ts file nel commit 85435fac.
Git show stampa il contenuto di una versione del file di cui è stato eseguito il commit precedente, che è possibile reindirizzare a un file di output:
git show <commit>:<file> > <output file>
Ad esempio, git show 85435fac:src/app.ts > /archive/oldapp.ts scriverà il contenuto di app.ts in commit 85435fac in /archive/oldapp.ts.
È possibile confrontare qualsiasi ramo locale o remoto per esaminare le modifiche risultanti da un merge o da una rebase. Il confronto tra rami consente di verificare la presenza di conflitti di unione e di verificare in che modo le modifiche apportate da altri utenti potrebbero influire sul lavoro.
Visual Studio 2019 e versioni precedenti non supportano il confronto tra rami, quindi se si usa una di queste versioni, è possibile confrontare i rami nella riga di comando git o usare il Web browser, se il repository è ospitato in Azure Repos o GitHub. Visual Studio 2022 supporta il confronto tra rami, come descritto in Confrontare i rami.
Dal Web browser aprire il progetto team per l'organizzazione Azure DevOps. Nella visualizzazione Rami repository > selezionare i puntini di sospensione per qualsiasi ramo e scegliere Confronta rami per aprire la visualizzazione Confronto rami.
Nella visualizzazione Confronto rami scegliere i due rami da confrontare. Selezionare la scheda File per una visualizzazione diff delle righe nuove, eliminate o modificate in ogni file modificato.
Nota
GitHub supporta il confronto tra rami. Per confrontare due rami, aggiungere /compare/<branch1>...<branch2> all'URL del repository GitHub per passare alla pagina di confronto. La pagina di confronto contiene una visualizzazione diff di ogni file diverso. Per altre informazioni sul confronto dei rami in GitHub, vedere Confronto tra rami.
Per confrontare un ramo con current branch, fare clic con il pulsante destro del mouse su un ramo nel riquadro Rami del repository e quindi selezionare l'opzione di confronto. Il menu di scelta rapida specifica i nomi dei rami correnti e di destinazione:
Visual Studio 2019 non supporta il confronto tra rami. Tuttavia, è possibile confrontare i rami nella riga di comando Git o usando il Web browser, se il repository è ospitato in Azure Repos o GitHub.
Suggerimento
È possibile accedere al portale Web dalla visualizzazione Home di Team Explorer scegliendo Portale Web.
Visual Studio 2019 non supporta il confronto tra rami. Tuttavia, è possibile confrontare i rami nella riga di comando Git o usando il Web browser, se il repository è ospitato in Azure Repos o GitHub.
Suggerimento
È possibile accedere al portale Web dalla visualizzazione Home di Team Explorer scegliendo Portale Web.
Per confrontare due rami locali o remoti, è possibile usare il comando Git diff che specifica i nomi dei rami:
git diff <branch1> <branch2>
Git confronta il commit nella punta di un ramo con il commit alla punta dell'altra. L'output diff mostrerà le eliminazioni e le aggiunte tra ogni file nei due rami.
Di seguito è riportato un esempio di output per il comando git diff users/frank/feature origin/main, che confronta un ramo locale con un ramo remoto:
index 36843b8..03afc4b 100644
--- a/tsapp/index.html
+++ b/tsapp/index.html
@@ -4,7 +4,7 @@
<head>
<meta charset="utf-8" />
<title>TypeScript HTML App</title>
- <link rel="stylesheet" href="fabrikam-test.css" type="text/css" />
+ <link rel="stylesheet" href="fabrikam.css" type="text/css" />
<script src="app.js"></script>
</head>
...
--- a/tsapp/app.ts
+++ b/tsapp/app.ts
constructor(element: HTMLElement) {
this.element = element;
- this.element.innerHTML += "The time is: ";
+ this.element.innerHTML += "The time is now: ";
this.span = document.createElement('span');
this.element.appendChild(this.span);
this.span.innerText = new Date().toUTCString();
Per restringere il confronto con un file specifico, specificare il file nel diff comando :
git diff <branch1> <branch2> <file>
Ad esempio, git diff users/frank/feature origin/main index.html genererà solo un diff per il index.html file.