Introdução usando o Git no Subsistema do Windows para Linux

O Git é o sistema de controle de versão 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 para 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 de Debian. Se eu abrir essas distribuições, selecione o diretório inicial com o comando cd ~e insira o comandoexplorer.exe ., Windows Explorador de Arquivos abrirá e mostrará o caminho do diretório para essa distribuição.

Distribuição do Linux Windows Caminho 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 Windows da linha de comando de distribuição do WSL, em vez dissoC:\Users\username, o diretório será acessado usando/mnt/c/Users/username, pois a distribuição do Linux exibe seu sistema de arquivos Windows como uma unidade montada.

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

Showing Git versions by distro

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, consulte 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 mais recente estável 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 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 GitHub, poderá se inscrever para uma 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 a configuração do Git, poderá fazê-lo com um editor de texto interno, como nano: nano ~/.gitconfig.

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

Configuração do Git Credential Manager

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

GCM integra-se ao fluxo de autenticação para serviços como GitHub e, depois de autenticar seu provedor de hospedagem, solicitará um novo token de autenticação. Em seguida, ele armazena o token com segurança no Gerenciador de Credenciais Windows. Após a primeira vez, você pode usar o Git para falar com seu provedor de hospedagem sem precisar se autenticar novamente. Ele só acessará o token no Gerenciador de Credenciais do Windows.

Para usar 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 GCM usa para interoperar com o Git em suas distribuições WSL.

É recomendável instalar o Git mais recente para Windows para compartilhar as configurações de credenciais & 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 novo Git para Windows versão. Durante a instalação, você será solicitado a selecionar um auxiliar de credencial, com GCM definido como o padrão.

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

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

Se o GIT instalado for >= v2.36.1

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

caso contrário, se a versão for < v2.36.1, insira este comando:

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

Observação

Usar 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 por GCM (por padrão). Isso ocorre porque GCM está em execução como um aplicativo Windows e, portanto, usará o Git para Windows instalação 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 elas são armazenadas em arquivos diferentes (%USERPROFILE%\.gitconfig vs\\wsl$\distro\home\$USER\.gitconfig). Você pode configurar o WSL para que 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 com o host Windows.

Git com SSH

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

Configuração adicional para o Azure

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

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

Agora, qualquer operação git executada em sua distribuição WSL usará 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 de GitHub.

Adicionando um arquivo Git Ignore

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

Se você optar por criar um novo repositório usando o site GitHub, haverá caixas de seleção disponíveis para inicializar seu repositório com um arquivo README, um arquivo .gitignore configurado para seu tipo de projeto específico e opções para adicionar uma licença se 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 do Git do VS Code.

Terminações de linha 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 Windows e 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 fim de linha usando um .gitattributes arquivo ou globalmente no lado Windows. Consulte este documento VS Code sobre como resolver problemas de término de linha do Git.

Recursos adicionais