Aggiunta e rimozione di file in Git

Completato

Dopo aver inizializzato il repository Git locale, è possibile iniziare a lavorare sull'estensione AL. Ogni file creato deve essere aggiunto al repository. A tale scopo è necessario eseguire alcuni comandi. Si osservino i diversi comandi da aggiungere al repository o da rimuovere ed eseguire il commit delle modifiche nella directory Git.

Aggiunta di file

Per aggiungere un file non tracciato o modificato (o più file) a Git, usare il comando add. In questo modo i file modificati verranno spostati dalla directory di lavoro all'area di gestione temporanea. Con il comando add si specifica il nome del file da aggiungere. Per indicare tutti i file, è possibile utilizzare un asterisco.

git add <filename>

git add *

In Visual Studio Code è possibile aggiungere file facendo clic sul segno + accanto a un nome di file nella finestra di controllo del codice sorgente (CTRL+MAIUSC+G). Questa azione inserirà il file nell'area di gestione temporanea. Per aggiungere tutti i file modificati, è possibile fare clic sul segno + nella sezione modifiche.

Screenshot della funzionalità + per aggiungere un file nell'area di gestione temporanea.

Il risultato dell'aggiunta di file all'area di gestione temporanea è visibile nella sezione modifiche preparate per il commit in Visual Studio Code. Nella schermata successiva i file app.json, BodyType.al e .gitignore vengono preparati per il commit. A tali file viene anche assegnato il codice di stato A per indicare che sono stati aggiunti.

Screenshot della sezione Modifiche preparate per il commit in Visual Studio Code.

Rimozione di un file preparato per il commit

Se è stato aggiunto erroneamente un file all'area di gestione temporanea, è possibile rimuoverlo. Per rimuovere un file dall'area di gestione temporanea, è necessario utilizzare il comando reset.

git reset HEAD <filename>

In tal modo il file verrà ripristinato nella directory di lavoro e rimosso dall'area di gestione temporanea. Se questa operazione viene eseguita su file aggiunti di recente, di nuovo il file non sarà più tracciabile.

In Visual Studio Code è possibile utilizzare il segno - per rimuovere file dall'area di gestione temporanea o per eseguire il comando reset.

Screenshot della funzionalità - per rimuovere un file preparato per il commit dall'area di gestione temporanea o per ripristinarlo.

Esecuzione del commit dei file preparati per il commit nella directory Git

Una volta che i file si trovano nell'area di gestione temporanea, è possibile usare il comando commit per archiviarli nella directory Git. Ogni commit preleverà tutti i file dall'area di gestione temporanea, li aggiungerà alla directory Git e includerà il nome utente e l'indirizzo e-mail al proprio interno.

git commit

Un commit necessita sempre di un messaggio di commit. Se si utilizza il comando precedente, si aprirà l'editor predefinito che consentirà di inserire un messaggio di commit. È inoltre possibile utilizzare l'opzione -m.

git commit -m "Your message comes here"

In Visual Studio Code è disponibile una GUI per inserire il messaggio di commit. Il messaggio può essere inserito in due posizioni. Può essere inserito nel riquadro SCM appena sopra la sezione modifiche preparate per il commit.

Screenshot dell'area in cui viene aggiunto un messaggio di commit nel riquadro SCM.

Se non viene fornito un messaggio quando si fa clic sul pulsante di commit, anche in Visual Studio Code verrà chiesto di inserirlo.

Screenshot della richiesta di fornire un messaggio.

Il commit effettivo viene eseguito utilizzando l'icona di segno di spunta o i comandi commit dell'elenco dei comandi Git. È possibile aprire l'elenco dei comandi facendo clic sui tre punti.

Le modifiche per l'esecuzione del commit dei file preparati consentono di eseguire solo il commit dei file nell'area di gestione temporanea. L'icona di segno di spunta è un collegamento per il comando Esegui commit dei file preparati. In genere ogni commit crea una nuova voce di commit in Git. Ogni commit genera una stringa di commit univoca che identifica in modo univoco quel commit.

Ad esempio:

521747298a3790fde1710f3aa2d03b55020575aa

Se si seleziona l'opzione Modifica, non verrà creato un nuovo commit, ma le modifiche verranno aggiunte all'ultimo commit. Questa operazione è utile se si sono dimenticati alcuni file.

git commit --amend

Screenshot della sezione Conferma modifiche in Visual Studio Code.

Se nessun file viene aggiunto all'area di gestione temporanea, ma si fa clic sul pulsante di commit, in Visual Studio Code verrà visualizzato un messaggio per segnalare che non sono presenti file nell'area di gestione temporanea. Inoltre, verrà richiesto se si vuole eseguire il commit dei file che si trovano nella directory di lavoro. L'area di gestione temporanea verrà quindi aggirata. Questa operazione potrà anche essere eseguita usando l'opzione -a nel comando commit.

git commit -a -m "Your message comes here"

Una volta eseguito un commit, facendo clic sul nome del ramo (in questo esempio, master) verrà visualizzata un'opzione per creare un nuovo ramo, ma anche l'ID commit che il ramo sta utilizzando.

Screenshot dell'ID commit nel nome del ramo.

Si consiglia di aggiungere spesso i file modificati all'area di gestione temporanea e, se sono pronti e stabili, è possibile eseguirne il commit nella directory Git. Non aspettare fino alla fine della giornata, ma eseguire il commit delle modifiche il più spesso possibile.

Rimozione di un file dal repository

Se si elimina un file dalla directory di lavoro utilizzando Esplora risorse o in Visual Studio Code, il file farà ancora parte del repository Git. Usare il comando rm per indicare il repository Git di cui si desidera eliminare il file dal progetto. Questa azione verrà memorizzata nell'area di gestione temporanea, insieme ai file modificati o aggiunti. Quando si eseguirà un commit, la rimozione del file verrà completata nel repository Git.

git rm <filename>

Un'eliminazione verrà rilevata automaticamente nella directory di lavoro e resa visibile in Visual Studio Code. A questo file verrà assegnato il codice di stato D, indicante che il file è stato eliminato dal disco. Preparare questa modifica per il commit in modo che attivi il comando rm ed eseguire il commit per rimuovere completamente il comando dalla directory Git.

Screenshot di un file eliminato contrassegnato con D nella directory di lavoro.

È possibile che non si desideri eliminare il file dal disco, ma solo rimuoverlo da Git. Utilizzare in tal caso il comando rm - cache.

git rm --cached <filename>

In questo modo il file verrà rimosso dall'area di gestione temporanea e anche dal repository Git, ma sarà ancora presente sul disco. Di nuovo il file non sarà più tracciabile.

Annullamento delle modifiche

Per ripristinare la versione precedente di un file a cui sono state apportate modifiche, è possibile utilizzare il comando checkout. Si otterrà la versione con commit dalla directory Git e questa versione verrà inserita nella directory di lavoro.

git checkout <filename>