# Guia de Configuração Inicial: Git e GitHub (Windows)

> “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” — Martin Fowler

Esta é uma clássica citação de Martin Fowler, um dos mais influentes pensadores da engenharia de software moderna. Em uma tradução livre:

> Qualquer tolo pode escrever código que um computador entende. Bons programadores escrevem código que humanos entendem.

A citação de Fowler vai além da simples elegância do código; ela toca no coração do desenvolvimento de software como uma atividade colaborativa e duradoura. Um programa não é apenas um conjunto de instruções para uma máquina, mas também um documento vivo que será lido, modificado e mantido por outras pessoas — ou por você mesmo, meses depois.

Como, então, garantimos que a história e a evolução de nosso código sejam tão compreensíveis quanto o próprio código? A resposta está no **controle de versão**, e a ferramenta padrão da indústria para essa tarefa é o **Git**.

O Git é o sistema que permite registrar "fotografias" do seu projeto ao longo do tempo, entender quem alterou o quê e por quê, e colaborar de forma organizada com equipes de qualquer tamanho. No entanto, o Git por si só é apenas a ferramenta local. Para levar a colaboração a um nível global, utilizamos plataformas como o **GitHub**, que funciona como uma grande rede social para repositórios de código, permitindo que desenvolvedores de todo o mundo hospedem, compartilhem e contribuam para projetos de forma centralizada.

### Este guia é para mim?

Se seu objetivo é apenas explorar projetos públicos ou baixar o código-fonte de uma ferramenta no GitHub, você não precisa de nenhuma configuração especial. A plataforma funciona como qualquer outro site de download.

Contudo, para se tornar um participante ativo no ecossistema de desenvolvimento — seja para contribuir com um projeto de código aberto, trabalhar em uma equipe ou simplesmente para salvar seus próprios projetos de forma segura na nuvem — você precisará estabelecer um canal de comunicação seguro e autenticado entre sua máquina local (onde o Git opera) e os servidores do GitHub.

Este guia é focado exatamente nisso: configurar a ponte segura que lhe permitirá não apenas consumir, mas também **criar e colaborar**.

<div data-node-type="callout">
<div data-node-type="callout-emoji">ℹ</div>
<div data-node-type="callout-text">Usando Linux? Veja <a target="_self" rel="noopener noreferrer nofollow" href="https://blog.hellmrf.dev.br/configuracao-inicial-git-e-github-linux" style="pointer-events: none">este tutorial</a> focado em sistemas Linux ou WSL.</div>
</div>

### Nosso Ponto de Partida e o Caminho a Seguir

Este artigo assume que você já compreendeu a importância fundamental do controle de versão e está pronto para configurar seu ambiente de desenvolvimento profissionalmente.

**Pré-requisitos:**

Para acompanhar este tutorial, você já deve ter realizado dois passos essenciais:

* **Possuir uma conta no** [**GitHub**](https://github.com/)**:** Sua identidade no universo do desenvolvimento colaborativo.
    
* **Sistema Operacional Windows (10 ou 11)**.
    

**Objetivo:**

Ao final deste guia, teremos estabelecido uma conexão segura e permanente entre o cliente Git em sua máquina e sua conta no GitHub. Para isso, vamos:

1. Realizar a instalação e a configuração inicial de identidade no Git;
    
2. Gerar um par de chaves criptográficas (SSH) para garantir uma comunicação segura e sem a necessidade de senhas;
    
3. Configurar sua máquina para usar a chave privada e o GitHub para reconhecer sua chave pública;
    
4. Garantir que seu ambiente local está totalmente autenticado e pronto para interagir com qualquer repositório ao qual você tenha acesso.
    

**Objetivo:**

Ao final deste guia, teremos estabelecido uma conexão segura e permanente entre o cliente Git em sua máquina e sua conta no GitHub. Para isso, vamos:

1. Realizar a configuração inicial de identidade no Git;
    
2. Gerar um par de chaves criptográficas (SSH) para garantir uma comunicação segura e sem a necessidade de senhas;
    
3. Configurar sua máquina para usar a chave privada e o GitHub para reconhecer sua chave pública;
    
4. Garantir que seu ambiente local está totalmente autenticado e pronto para interagir com qualquer repositório ao qual você tenha acesso.
    

## Instruções

### Passo 1: Instalação e Configuração de Identidade

Antes de estabelecermos a ponte segura com o GitHub, precisamos garantir que o Git esteja corretamente instalado e que saiba quem você é. Toda contribuição que você fizer será assinada com essa identidade.

#### 1.1. Instalando o Git for Windows

Primeiro, vamos instalar o cliente Git em sua máquina. Para Windows, o pacote **Git for Windows** é a escolha padrão, pois inclui não apenas o Git, mas também o **Git Bash**, um terminal que nos dá acesso a comandos essenciais como `ssh-keygen`, de forma muito similar a ambientes Linux.

1. Acesse o site oficial: [**https://git-scm.com/download/win**](https://git-scm.com/download/win)
    
2. O download do instalador deve começar automaticamente. Execute-o.
    
3. Durante a instalação, você pode manter as opções padrão na maioria das telas. Elas são seguras e adequadas para a maioria dos usuários.
    

Após a instalação, procure por **"Git Bash"** no menu Iniciar e abra-o. Todos os comandos a seguir deverão ser executados neste terminal.

Para verificar se a instalação foi bem-sucedida, execute:

```bash
git --version
```

Você deverá ver a versão do Git instalada, como `git version` [`2.42.0.windows`](http://2.42.0.windows)`.1`.

#### 1.2. Configurando sua Identidade

Agora, vamos nos apresentar ao Git. As informações de nome e e-mail que você configurar aqui serão usadas para "assinar" todos os seus *commits*, registrando sua autoria no histórico do projeto.

**É crucial que o e-mail seja o mesmo associado à sua conta do GitHub.**

Execute os seguintes comandos no **Git Bash**, substituindo os valores de exemplo pelos seus dados reais:

```bash
git config --global user.name "Seu Nome Completo"

git config --global user.email "seu-email@exemplo.com"
```

A flag `--global` garante que essa configuração seja aplicada para todos os seus projetos Git nesta máquina, evitando que você precise repeti-la a cada novo repositório.

### Passo 2: Criando a Ponte Segura com Chaves SSH

A interação com o GitHub requer autenticação. Em vez de usar senhas, que podem ser inseguras e pouco práticas, usaremos o protocolo **SSH (Secure Shell)**.

O SSH funciona com um par de chaves criptográficas: uma **privada** e uma **pública**.

* A **chave privada** (`id_ed25519`) fica armazenada **exclusivamente na sua máquina**. Ela é o seu segredo, sua identidade digital. **Nunca a compartilhe.**
    
* A **chave pública** (`id_`[`ed25519.pub`](http://ed25519.pub)) é o seu "cadeado". Você a entrega ao GitHub.
    

Quando sua máquina tenta se conectar ao GitHub, ela envia uma mensagem assinada com sua chave privada. O GitHub usa a chave pública (o cadeado) que você forneceu para verificar essa assinatura. Se a verificação for bem-sucedida, o GitHub tem a certeza de que a conexão vem de você e autoriza o acesso.

> **Referência:** [Documentação oficial do GitHub sobre conexão com SSH](https://docs.github.com/pt/authentication/connecting-to-github-with-ssh)

#### 2.1. Gerando seu Par de Chaves

Vamos criar as chaves no **Git Bash**. O comando a seguir utiliza o algoritmo `ed25519`, que é moderno e seguro.

```bash
# Substitua pelo seu e-mail do GitHub
ssh-keygen -t ed25519 -C "seu-email@exemplo.com"
```

O `ssh-keygen` fará algumas perguntas:

1. `Enter file in which to save the key...`: Pressione **Enter** para aceitar o local padrão (`/c/Users/SEU_USUARIO/.ssh/id_ed25519`). É o local que o sistema espera encontrar a chave.
    
2. `Enter passphrase (empty for no passphrase):`: Aqui você pode definir uma senha para sua chave SSH.
    
    * **Recomendado:** Digite uma senha segura. Isso adiciona uma camada extra de proteção. Se alguém conseguir acesso à sua máquina e copiar sua chave privada, ainda precisará dessa senha para usá-la.
        
    * **Alternativa:** Pressione **Enter** (deixando em branco) se estiver em uma máquina pessoal e segura, e prefere não digitar a senha a cada conexão.
        

Ao final, dois arquivos terão sido criados no diretório `C:\Users\SEU_USUARIO\.ssh\`.

#### 2.2. Iniciando o Agente SSH e Adicionando sua Chave

Para que você não precise digitar a senha da sua chave SSH toda vez que se conectar, usamos o `ssh-agent`, um programa que a mantém em memória de forma segura durante sua sessão.

Primeiro, inicie o agente em segundo plano no **Git Bash**:

```bash
eval "$(ssh-agent -s)"
```

Em seguida, adicione sua chave privada ao agente:

```bash
ssh-add ~/.ssh/id_ed25519
```

Se você definiu uma senha no passo anterior, ela será solicitada agora.

#### 2.3. Adicionando sua Chave Pública ao GitHub

O último passo é informar ao GitHub qual é a sua chave pública.

Primeiro, copie o conteúdo da sua chave pública para a área de transferência. No **Git Bash**, podemos usar o comando `clip`:

```bash
clip < ~/.ssh/id_ed25519.pub
```

*Se o comando acima falhar*, apenas exiba o conteúdo no terminal com `cat ~/.ssh/id_`[`ed25519.pub`](http://ed25519.pub) e copie-o manualmente (selecione todo o texto do início `ssh-ed25519` até o final com seu e-mail, e pressione `Ctrl+C`).

O conteúdo copiado será algo como: `ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK...` [`seu-email@exemplo.com`](mailto:seu-email@exemplo.com)

Agora, com a chave copiada, siga os passos no site do GitHub:

1. Acesse o [GitHub](https://github.com) e faça login.
    
2. Clique na sua foto de perfil no canto superior direito e vá para [**Settings**](https://github.com/settings).
    
3. No menu esquerdo, clique em [**SSH and GPG keys**](https://github.com/settings/keys).
    
4. Clique no botão verde [**New SSH key**](https://github.com/settings/ssh/new).
    

Ou, simplesmente, acesse [https://github.com/settings/ssh/new](https://github.com/settings/ssh/new). Estamos nesta tela:

![Captura de tela da página de configurações do GitHub, na seção "SSH and GPG keys". O formulário "Adicionar nova chave SSH" está visível, com o campo "Título" preenchido como "Laptop Pessoal Ubuntu" e uma chave pública SSH colada no campo "Key".](https://cdn.hashnode.com/res/hashnode/image/upload/v1760979384066/aab0708e-8489-4042-a9bd-92f481d125f8.png align="center")

5. No campo **Title**, dê um nome descritivo para a chave, que ajude a identificar de qual máquina ela vem (ex: "Laptop Pessoal Windows" ou "Desktop Trabalho").
    
6. No campo **Key**, cole a chave pública que você copiou.
    
7. Clique em **Add SSH key**. O GitHub pode pedir sua senha para confirmar a ação.
    

### Passo 3: Verificando a Conexão

Tudo está configurado! Agora, vamos realizar um teste final para garantir que sua máquina consegue se comunicar e se autenticar com o GitHub via SSH.

Execute o seguinte comando no **Git Bash**:

```bash
ssh -T git@github.com
```

Na primeira vez, você poderá ver um aviso como:

```plaintext
The authenticity of host 'github.com (IP_ADDRESS)' can't be established.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
```

Isso é normal. Digite `yes` e pressione **Enter**.

Se tudo deu certo, você receberá uma mensagem de boas-vindas:

> Hi `seu-usuario`! You've successfully authenticated, but GitHub does not provide shell access.

**Parabéns!** Sua máquina está totalmente configurada para interagir de forma segura com o GitHub. Você está pronto para clonar repositórios privados, enviar suas alterações (`push`) e colaborar no ecossistema de desenvolvimento.
