Introduzione all'uso di git nel sottosistema Windows per LinuxGet started using Git on Windows Subsystem for Linux

Git è il sistema di controllo della versione usato più di frequente.Git is the most commonly used version control system. Con git è possibile tenere traccia delle modifiche apportate ai file, in modo da ottenere un record delle operazioni eseguite e di ripristinare le versioni precedenti dei file, se necessario.With Git, you can track changes you make to files, so you have a record of what has been done, and have the ability to revert to earlier versions of the files if needed. Git semplifica inoltre la collaborazione, consentendo il merge delle modifiche da parte di più persone in un'unica origine.Git also makes collaboration easier, allowing changes by multiple people to all be merged into one source.

Git può essere installato in Windows e in WSLGit can be installed on Windows AND on WSL

Una considerazione importante: quando si Abilita WSL e si installa una distribuzione Linux, si sta installando un nuovo file system, separato dal C:\ NTFS di Windows unità nel computer.An important consideration: when you enable WSL and install a Linux distribution, you are installing a new file system, separated from the Windows NTFS C:\ drive on your machine. In Linux alle unità non sono assegnate lettere.In Linux, drives are not given letters. Sono assegnati punti di montaggio.They are given mount points. La radice del file system / è il punto di montaggio della partizione radice, o della cartella, nel caso di WSL.The root of your file system / is the mount point of your root partition, or folder, in the case of WSL. Non tutti gli elementi in / sono la stessa unità.Not everything under / is the same drive. Nel mio portatile, ad esempio, ho installato due versioni di Ubuntu (20,04 e 18,04), oltre a Debian.For example, on my laptop, I've installed two version of Ubuntu (20.04 and 18.04), as well as Debian. Se apro le distribuzioni, seleziono la directory radice con il comando cd ~ e digito il comando explorer.exe . , Esplora file di Windows verrà aperto e visualizzerà il percorso della directory per la distribuzione.If I open those distributions, select the root directory with the command cd ~, and then enter the command explorer.exe ., Windows File Explorer will open and show me the directory path for that distribution.

Distro LinuxLinux distro Percorso di Windows per accedere alla cartella HomeWindows Path to access home folder
Ubuntu 20.04Ubuntu 20.04 \\wsl$\Ubuntu-20.04\home\username
Ubuntu 18.04Ubuntu 18.04 \\wsl$\Ubuntu-18.04\home\username
DebianDebian \\wsl$\Debian\home\username
Windows PowerShellWindows PowerShell C:\Users\username

Suggerimento

Se si sta tentando di accedere alla directory dei file di Windows dalla riga di comando per la distribuzione di WSL, invece di, è possibile C:\Users\username accedere alla directory usando /mnt/c/Users/username , perché la distribuzione di Linux visualizza la file System di Windows come unità montata.If you are seeking to access the Windows file directory from your WSL distribution command line, instead of C:\Users\username, the directory would be accessed using /mnt/c/Users/username, because the Linux distribution views your Windows file system as a mounted drive.

È necessario installare Git in ogni file system che si intende usare con.You will need to install Git on each file system that you intend to use it with.

Visualizzazione delle versioni git per distribuzione

Installazione di GitInstalling Git

Git è già installato con la maggior parte del sottosistema Windows per le distribuzioni Linux, tuttavia, è possibile eseguire l'aggiornamento alla versione più recente.Git comes already installed with most of the Windows Subsystem for Linux distributions, however, you may want to update to the latest version. Sarà inoltre necessario configurare il file di configurazione git.You also will need to set up your git config file.

Per installare Git, vedere il sito di download git per Linux .To install Git, see the Git Download for Linux site. Ogni distribuzione Linux dispone di un proprio gestore di pacchetti e di un comando di installazione.Each Linux distribution has their own package manager and install command.

Per la versione più recente di git stabile in Ubuntu/Debian, immettere il comando:For the latest stable Git version in Ubuntu/Debian, enter the command:

sudo apt-get install git

Nota

È anche possibile installare Git per Windows , se non è già stato fatto.You also may want to install Git for Windows if you haven't already.

Configurazione del file di configurazione gitGit config file setup

Per configurare il file di configurazione git, aprire una riga di comando per la distribuzione che si sta utilizzando e impostare il nome con questo comando (sostituendo "Your Name" con il nome utente git):To set up your Git config file, open a command line for the distribution you're working in and set your name with this command (replacing "Your Name" with your Git username):

git config --global user.name "Your Name"

Impostare la posta elettronica con questo comando (sostituendo " youremail@domain.com " con il messaggio di posta elettronica usato nell'account git):Set your email with this command (replacing "youremail@domain.com" with the email you use on your Git account):

git config --global user.email "youremail@domain.com"

Suggerimento

Se non disponi ancora di un account Git, puoi registrarti su GitHub.If you don't yet have a Git account, you can sign-up for one on GitHub. Se non si è mai usato Git, consultare le guide di GitHub per iniziare.If you've never worked with Git before, GitHub Guides can help you get started. Se devi modificare la configurazione Git, puoi usare un editor di testo integrato come nano: nano ~/.gitconfig.If you need to edit your git config, you can do so with a built-in text editor like nano: nano ~/.gitconfig.

Si consiglia di proteggere l'account con l'autenticazione a due fattori (2FA).We recommend that you secure your account with two-factor authentication (2FA).

Configurazione di git Credential ManagerGit Credential Manager setup

Git Credential Manager consente di autenticare un server Git remoto, anche se si dispone di un modello di autenticazione complesso, ad esempio l'autenticazione a due fattori, Azure Active Directory o l'uso di URL remoti SSH che richiedono una password della chiave SSH per ogni push git.Git Credential Manager enables you to authenticate a remote Git server, even if you have a complex authentication pattern like two-factor authentication, Azure Active Directory, or using SSH remote URLs that require an SSH key password for every git push. Git Credential Manager è integrato nel flusso di autenticazione per servizi come GitHub e, dopo aver eseguito l'autenticazione al provider di hosting, richiede un nuovo token di autenticazione.Git Credential Manager integrates into the authentication flow for services like GitHub and, once you're authenticated to your hosting provider, requests a new authentication token. Il token viene quindi archiviato in modo sicuro in Gestione credenziali di Windows.It then stores the token securely in the Windows Credential Manager. Dopo la prima volta, potrai usare git per comunicare con il provider di hosting senza dover eseguire di nuovo l'autenticazione.After the first time, you can use git to talk to your hosting provider without needing to re-authenticate. Verrà semplicemente eseguito l'accesso al token in Gestione credenziali di Windows.It will just access the token in the Windows Credential Manager.

Per configurare Git Credential Manager per l'uso con una distribuzione WSL, apri la distribuzione e immetti il comando seguente:To set up Git Credential Manager for use with a WSL distribution, open your distribution and enter this command:

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"

A questo punto, qualsiasi operazione git eseguita all'interno della distribuzione WSL userà Gestione credenziali.Now any git operation you perform within your WSL distribution will use the credential manager. Se nella cache hai già memorizzato le credenziali per un host, quest'ultimo potrà accedere alle credenziali da Gestione credenziali.If you already have credentials cached for a host, it will access them from the credential manager. In caso contrario, riceverai una risposta della finestra di dialogo con la richiesta delle credenziali anche se ti trovi in una console Linux.If not, you'll receive a dialog response requesting your credentials, even if you're in a Linux console.

Nota

Se si usa una chiave GPG per la sicurezza per la firma del codice, potrebbe essere necessario associare la chiave GPG al messaggio di posta elettronica GitHub.If you are using a GPG key for code signing security, you may need to associate your GPG key with your GitHub email.

Aggiunta di un file Git IgnoreAdding a Git Ignore file

È consigliabile aggiungere un file con estensione gitignore ai progetti.We recommend adding a .gitignore file to your projects. GitHub offre una raccolta di modelli gitignore utili con le configurazioni di file gitignore consigliate organizzate in base al caso d'uso.GitHub offers a collection of useful .gitignore templates with recommended .gitignore file setups organized according to your use-case. Ecco, ad esempio, il modello gitignore predefinito di GitHub per un progetto Node.js.For example, here is GitHub's default gitignore template for a Node.js project.

Se si sceglie di creare un nuovo repository usando il sito Web GitHub, sono disponibili caselle di controllo per inizializzare il repository con un file Leggimi, un file con estensione gitignore configurato per il tipo di progetto specifico e le opzioni per aggiungere una licenza, se necessario.If you choose to create a new repo using the GitHub website, there are check boxes available to initialize your repo with a README file, .gitignore file set up for your specific project type, and options to add a license if you need one.

Git e VS CodeGit and VS Code

Visual Studio Code è dotato del supporto incorporato per git, inclusa una scheda controllo del codice sorgente che mostrerà le modifiche e gestirà un'ampia gamma di comandi Git.Visual Studio Code comes with built-in support for Git, including a source control tab that will show your changes and handle a variety of git commands for you. Altre informazioni sul supporto Git di vs code.Learn more about VS Code's Git support.

Terminazioni riga gitGit line endings

Se si utilizza la stessa cartella del repository tra Windows, WSL o un contenitore, assicurarsi di impostare terminazioni riga coerenti.If you are working with the same repository folder between Windows, WSL, or a container, be sure to set up consistent line endings.

Poiché Windows e Linux usano terminazioni riga predefinite diverse, Git può segnalare un numero elevato di file modificati che non presentano differenze rispetto alle terminazioni riga.Since Windows and Linux use different default line endings, Git may report a large number of modified files that have no differences aside from their line endings. Per evitare che ciò accada, è possibile disabilitare la conversione della terminazione di riga utilizzando un .gitattributes file o globalmente sul lato Windows.To prevent this from happening, you can disable line ending conversion using a .gitattributes file or globally on the Windows side. Vedere questo documento vs code sulla risoluzione dei problemi relativi alla fine della riga di git.See this VS Code doc about resolving Git line ending issues.

Risorse aggiuntiveAdditional resources