Compartilhar via


Introdução ao uso do Git no Subsistema do Windows para Linux

O Git é o sistema de controle de versão moderno mais usado. Com o Git, você pode controlar as alterações feitas nos arquivos, para que tenha um registro do que foi feito e tenha a capacidade de reverter a versões anteriores dos arquivos, se necessário. O Git também facilita a colaboração, permitindo que as alterações de várias pessoas sejam mescladas em uma fonte.

O Git pode ser instalado no Windows AND no WSL

Uma consideração importante: ao habilitar o WSL e instalar uma distribuição do Linux, você está instalando um novo sistema de arquivos, separado do Windows NTFS C:\ unidade em seu computador. No Linux, as unidades não recebem letras. Eles recebem pontos de montagem. A raiz do sistema de arquivos / é o ponto de montagem da partição raiz, ou pasta, no caso do WSL. Nem tudo sob / é a mesma unidade. Por exemplo, no meu laptop, instalei duas versões do Ubuntu (20.04 e 18.04), bem como o Debian. Se eu abrir essas distribuições, selecionar o diretório base com o comando cd ~ e inserir o comando explorer.exe ., o Explorador de Arquivos do Windows abrirá e mostrará o caminho do diretório para essa distribuição.

Distribuição Linux Caminho do Windows para acessar a pasta inicial
Ubuntu 20.04 \\wsl$\Ubuntu-20.04\home\username
Ubuntu 18.04 \\wsl$\Ubuntu-18.04\home\username
Debian \\wsl$\Debian\home\username
Windows PowerShell C:\Users\username

Dica

Se você estiver buscando acessar o diretório de arquivos do Windows a partir da linha de comando da distribuição do WSL, em vez de C:\Users\username, o diretório será acessado usando /mnt/c/Users/username, porque a distribuição do Linux exibe seu sistema de arquivos do Windows como uma unidade montada.

Você precisará instalar o Git em cada sistema de arquivos com o qual pretende usá-lo.

Mostrar as versões do Git por distribuição

Instalando o Git

O Git já vem instalado com a maioria das distribuições de Subsistema do Windows para Linux, no entanto, talvez você queira atualizar para a versão mais recente. Você também precisará configurar o arquivo de configuração git.

Para instalar o Git, confira o site Download do Git para Linux . Cada distribuição do Linux tem seu próprio gerenciador de pacotes e comando de instalação.

Para a versão estável mais recente do Git no Ubuntu/Debian, insira o comando:

sudo apt-get install git

Observação

Talvez você também queira instalar o Git para Windows, caso ainda não tenha feito isso.

Configuração do arquivo de configuração do Git

Para configurar o arquivo de configuração do Git, abra uma linha de comando para a distribuição em que você está trabalhando e defina seu nome com este comando (substituindo "Seu nome" pelo nome de usuário preferido):

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

Defina seu email com este comando (substituindo "youremail@domain.com" pelo email que você preferir):

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

Dica

Se você ainda não tiver uma conta do GitHub, poderá criar uma conta no GitHub. Se você nunca trabalhou com o Git antes, os Guias do GitHub podem ajudar você a começar a usá-lo. Se você precisar editar o Git config, poderá fazer isso com um editor de texto interno como o nano: nano ~/.gitconfig.

Recomendamos que você proteja sua conta com 2FA (autenticação de dois fatores).

Configuração do Gerenciador de Credenciais do Git

O Git Credential Manager (GCM) é um auxiliar de credencial do Git seguro criado em .NET que pode ser usado com WSL1 e WSL2. Ele habilita o suporte à autenticação multifator para repositórios do GitHub, Azure DevOps, Azure DevOps Server e Bitbucket.

O GCM se integra ao fluxo de autenticação para serviços como o GitHub e, uma vez que você estiver autenticado no provedor de hospedagem, solicita um novo token de autenticação. Em seguida, armazena o token com segurança no Gerenciador de Credenciais do Windows. Após a primeira vez, você pode usar o Git para se comunicar com seu provedor de hospedagem sem a necessidade de fazer uma nova autenticação. Ele só acessará o token no Gerenciador de Credenciais do Windows.

Para usar o GCM com o WSL, você deve estar no Windows 10 versão 1903 ou posterior. Esta é a primeira versão do Windows que inclui a ferramenta necessária wsl.exe que o GCM usa para interoperar com o Git em suas distribuições do WSL.

É recomendado instalar o Git mais recente para Windows para compartilhar credenciais e configurações entre o WSL e o host Windows. O Git Credential Manager está incluído no Git para Windows e a versão mais recente está incluída em cada nova versão do Git para Windows. Durante a instalação, você será solicitado a selecionar um auxiliar de credencial, com o GCM definido como o padrão.

Se você tiver um motivo para não instalar o Git para Windows, poderá instalar o GCM como um aplicativo Linux diretamente na distribuição do WSL, mas observe que isso significa que o GCM está em execução como um aplicativo Linux e não pode utilizar os recursos de autenticação ou armazenamento de credenciais do sistema operacional Windows host. Confira o repositório GCM para obter instruções sobre como configurar o WSL sem o Git para Windows.

Para configurar o GCM para uso com uma distribuição do WSL, abra a distribuição e insira este comando:

Se o GIT instalado for >= v2.39.0

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

caso o GIT instalado for >= v2.36.1

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

caso a versão seja < v2.36.1, insira este comando:

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

Observação

Usar o GCM como auxiliar de credencial para uma instalação do Git do WSL significa que qualquer configuração definida no Git do WSL NÃO é respeitada pelo GCM (por padrão). Isso ocorre porque o GCM está em execução como um aplicativo do Windows e, portanto, usará a instalação do Git para Windows para consultar a configuração. Isso significa que coisas como configurações de proxy para GCM precisam ser definidas no Git para Windows, bem como no Git do WSL, pois são armazenadas em arquivos diferentes (%USERPROFILE%\.gitconfig versus \\wsl$\distro\home\$USER\.gitconfig). Você pode configurar o WSL para que o GCM use a configuração do Git do WSL, mas isso significa que as configurações de proxy serão exclusivas para a instalação específica do WSL e não compartilhadas com outras pessoas ou o host do Windows.

Git com SSH

O Git Credential Manager funciona apenas com os remotos HTTP(S). Você ainda pode usar o Git com SSH:

Configuração adicional para o Azure

Se você pretende trabalhar com o Azure Repos ou o Azure DevOps, será necessária uma configuração adicional:

git config --global credential.https://dev.azure.com.useHttpPath true

Agora, todas as operações de git realizadas na distribuição do WSL usarão o GCM. Se você já tiver credenciais armazenadas em cache para um host, elas serão acessadas do Gerenciador de Credenciais. Caso contrário, você receberá uma resposta em uma caixa de diálogo solicitando suas credenciais, mesmo que esteja em um console do Linux.

Dica

Se você estiver usando uma chave GPG para segurança de assinatura de código, talvez seja necessário associar sua chave GPG ao seu email do GitHub.

Adicionando um arquivo Git Ignore

Recomendamos adicionar um arquivo .gitignore ao seus projetos. O GitHub oferece uma coleção de modelos .gitignore úteis com configurações de arquivo .gitignore recomendadas organizadas de acordo com o seu caso de uso. Por exemplo, aqui está o modelo gitignore padrão do GitHub para um projeto do Node.js.

Se você optar por criar um repositório usando o site do GitHub, verá caixas de seleção disponíveis para inicializar o repositório com um arquivo LEIAME, arquivo .gitignore configurado para o seu tipo de projeto específico e opções para adicionar uma licença se você precisar de uma.

Git e VS Code

Visual Studio Code vem com suporte interno para Git, incluindo uma guia de controle do código-fonte que mostrará suas alterações e manipulará uma variedade de comandos git para você. Saiba mais sobre o suporte para Git no VS Code.

Terminações de linhas do Git

Se você estiver trabalhando com a mesma pasta de repositório entre Windows, WSL ou um contêiner, certifique-se de configurar terminações de linha consistentes.

Como o Windows e o Linux usam terminações de linha padrão diferentes, o Git pode relatar um grande número de arquivos modificados que não têm diferenças além de suas terminações de linha. Para evitar que isso aconteça, você pode desabilitar a conversão de terminação de linha usando um arquivo .gitattributes, ou de modo global no lado do Windows. Confira este documento do VS Code sobre como resolver problemas de terminações de linha do Git.

Recursos adicionais