Descrivere l'uso di Git in locale

Completato

Git e il recapito continuo offrono una di quelle efficaci combinazioni di tecnologie Solo occasionalmente nel mondo del software è possibile trovare una combinazione di tecnologie così efficace.

Il recapito continuo del software richiede un livello notevole di automazione. È difficile adottare un approccio di recapito continuo, se non si dispone di una codebase di qualità.

Git offre i blocchi predefiniti per gestire la qualità nella codebase. Consente di automatizzare la maggior parte dei controlli nella codebase. Inoltre, agisce prima dell'esecuzione del commit del codice nel repository.

Per apprezzare appieno l'efficacia di Git, è prima necessario comprendere come eseguire le operazioni di base su Git. Ad esempio, clonare ed eseguire il commit, il push e il pull.

La domanda che viene spontaneamente da fare è la seguente: come iniziare a usare Git?

Una possibilità è quella di passare alla modalità nativa con la riga di comando o di cercare un editor di codice che supporta Git in modo nativo.

Visual Studio Code è un editor di codice open source multipiattaforma che offre potenti strumenti per sviluppatori per centinaia di lingue.

Per lavorare in open source, è necessario adottare strumenti open source.

Questa ricetta inizia da:

  • Configurazione dell'ambiente di sviluppo con Visual Studio Code.
  • Creazione di un repository Git.
  • Commit in locale delle modifiche al codice.
  • Push delle modifiche in un repository remoto su Azure DevOps.

Preparazione

In questa esercitazione si apprende come inizializzare un repository Git in locale.

Si usa quindi il modello di progetto ASP.NET Core MVC per creare un nuovo progetto e assegnargli una versione nel repository Git locale.

Si userà quindi Visual Studio Code per interagire con il repository Git ed eseguire operazioni di commit, pull e push di base.

È necessario configurare l'ambiente di lavoro con i componenti seguenti:

Visual Studio Marketplace offre diverse estensioni per Visual Studio Code che è possibile installare per migliorare l'esperienza d'uso di Git:

  • Git Lens: questa estensione consente di visualizzare la cronologia del codice usando CodeLens e annotazioni Git Blame. L'estensione consente di spostarsi facilmente ed esplorare la cronologia di un file o di un ramo. L'estensione consente inoltre di ottenere informazioni dettagliate preziose tramite comandi di confronto potenti e molto altro ancora.
  • Git History: offre funzionalità di visualizzazione e interazione per visualizzare il log Git e la cronologia dei file e per confrontare i rami o i commit.

Procedura

  1. Aprire il prompt dei comandi e creare una nuova cartella di lavoro:

    mkdir myWebApp
    cd myWebApp
    
    
  2. In myWebApp inizializzare un nuovo repository Git:

    git init
    
    
  3. Configurare le impostazioni globali per il nome e l'indirizzo di posta elettronica da usare quando si esegue il commit in questo repository Git:

    git config --global user.name "John Doe"
    git config --global user.email "john.doe@contoso.com"
    
    

    Se si sta lavorando dietro un proxy aziendale, è possibile rendere il repository Git consapevole del proxy aggiungendo i dettagli del proxy nel file di configurazione Git globale. Diverse varianti di questo comando consentono di configurare un proxy HTTP/HTTPS (con nome utente/password) e ignorare facoltativamente la verifica SSL. Eseguire il comando seguente per definire un proxy nella configurazione Git globale.

    git config --global http.proxy
    http://proxyUsername:proxyPassword@proxy.server.com:port
    
    
  4. Creare una nuova applicazione ASP.NET Core. Il nuovo comando offre una raccolta di opzioni che possono essere usate per la selezione del linguaggio, dell'autenticazione e del framework. Altre informazioni sono disponibili in Microsoft Learn.

    dotnet new mvc
    
    

    Avviare Visual Studio Code nel contesto della cartella di lavoro corrente:

    code .
    
    
  5. Quando il progetto viene aperto in Visual Studio Code, selezionare per il messaggio di avviso seguente: In 'myWebApp' non sono presenti asset obbligatori per la compilazione e il debug. Aggiungerli? Selezionare Ripristina per il messaggio informativo che segnala la presenza di dipendenze non risolte. Premere F5 per eseguire il debug dell'applicazione, quindi myWebApp verrà caricata nel browser, come illustrato nello screenshot seguente:

    Screenshot dell'app Web di Visual Studio Code.

    Se si preferisce usare la riga di comando, è possibile eseguire i comandi seguenti nel contesto del repository Git per eseguire l'applicazione Web.

    dotnet build
    dotnet run
    
    

    Si nota che la cartella ".VS Code" viene aggiunta alla cartella di lavoro. Per evitare il commit di questa cartella nel repository Git, è possibile includerla nel file .gitignore. Selezionare un file dalla cartella ".VS Code", premere F1 per avviare la finestra di comando in Visual Studio Code, digitare gitIgnore e accettare l'opzione per includere il file selezionato nel nuovo file con estensione .gitIgnore.

    Screenshot dell'azione di aggiunta di file a .gitignore.

    Aprire .gitignore, rimuovere il nome del file dal percorso e lasciare la cartella con una barra, ad esempio .VS Code/*.

    Screenshot dell'azione di aggiunta di una cartella vscode a .gitignore.

  6. Per preparare per il commit il progetto myWebApp appena creato e quindi eseguirne il commit nel repository Git da Visual Studio Code, passare all'icona Git dal pannello a sinistra. Aggiungere un commento di commit ed eseguire il commit delle modifiche facendo clic sull'icona del segno di spunta. Le modifiche verranno preparate per il commit e sottoposte a commit in un'unica operazione:

    Screenshot del commit con VSCode.

    Aprire Program.cs. Si nota che Git Lens decora le classi e le funzioni con la cronologia del commit e porta queste informazioni inline per ogni riga di codice:

    Screenshot del codice Program.cs che mostra la decorazione della classe.

  7. A questo punto avviare cmd nel contesto del repository Git ed eseguire git branch --list. Viene mostrato che nel repository al momento è presente solo il ramo main. Eseguire ora il comando seguente per creare un nuovo ramo denominato feature-devops-home-page.

    git branch feature-devops-home-page
    git checkout feature-devops-home-page
    git branch --list
    
    

    È stato creato un nuovo ramo con questi comandi, che quindi è stato estratto. La parola chiave --list mostra un elenco di tutti i rami nel repository. Il colore verde rappresenta il ramo attualmente estratto.

  8. Passare ora al file ~\Views\Home\Index.cshtml e sostituire il contenuto con il testo seguente.

    @{
        ViewData["Title"] = "Home Page";
    }
    
    <div class="text-center">
        <h1 class="display-4">Welcome</h1>
        <p>Learn about <a href="https://azure.microsoft.com/services/devops/">Azure DevOps</a>.</p>
    </div>
    
    
  9. Aggiornare l'app Web nel browser per visualizzare le modifiche.

    Screenshot della home page localhost.

  10. Nel contesto del repository Git eseguire i comandi seguenti. Questi comandi preparano per il commit le modifiche nel ramo e quindi ne eseguono il commit.

    git status
    git add .
    git commit -m "updated welcome page."
    git status
    
    
  11. Per unire le modifiche di feature-devops-home-page nel ramo principale, eseguire i comandi seguenti nel contesto del repository Git.

    git checkout main
    git merge feature-devops-home-page
    
    

    Screenshot della finestra di output di merge feature-devops-home-page.

  12. Eseguire il comando seguente per eliminare il ramo feature.

    git branch --delete feature-devops-home-page
    
    

Funzionamento

Il modo più semplice per comprendere il risultato dei passaggi eseguiti in precedenza consiste nel controllare la cronologia dell'operazione. Di seguito viene illustrato come procedere.

  1. In Git, il commit delle modifiche a un repository è costituito da un processo in due passaggi. Esecuzione di add . Le modifiche vengono preparate per il commit, ma il commit non viene eseguito. Successivamente, l'esecuzione del commit promuove tali modifiche nel repository.

  2. Per visualizzare la cronologia delle modifiche nel ramo main, eseguire il comando git log -v

    Screenshot della cronologia delle modifiche nel ramo principale.

  3. Per esaminare le modifiche effettive nel commit, è possibile eseguire il comando git log -p

    Screenshot della riga di comando che mostra l'output di git log -p con le modifiche apportate al file.

Altre opzioni disponibili

Git semplifica l'annullamento delle modifiche. Nell'esempio illustrato, si supponga di voler escludere le modifiche apportate alla pagina di benvenuto.

È possibile ripristinare una versione precedente del commit per il ramo main usando il comando seguente.

git reset --hard 5d2441f0be4f1e4ca1f8f83b56dee31251367adc

L'esecuzione di questo comando consente di reimpostare il ramo fino alla modifica di inizializzazione del progetto.

Se si esegue git log -v, si nota che le modifiche apportate alla pagina iniziale vengono rimosse dal repository.