DEV Community

Emanoel Carvalho
Emanoel Carvalho

Posted on

📘Guia Prático: Introdução ao Git + Como Subir Seu Código no GitHub

📝 Introdução

No cenário atual do desenvolvimento de software, usamos dezenas de linguagens, frameworks e ferramentas. Mas, independentemente da stack, existe algo que todo desenvolvedor precisa dominar desde cedo: controle de versão.

Nesse contexto, entram em cena duas ferramentas fundamentais:

  • Git — o sistema de controle de versão mais usado do mundo

  • GitHub — uma plataforma de hospedagem e colaboração baseada em Git

Antes de mostrar como integrar Git e GitHub, é fundamental entender por que essas ferramentas existem e como funcionam por dentro. Essa base torna qualquer profissional mais confiante e evita erros comuns do dia a dia.


🧩 1. O que é Git?

O Git é um software open source de controle de versão, criado por Linus Torvalds, o mesmo criador do Linux.

A motivação original era simples: ele precisava de um sistema rápido, eficiente e confiável para controlar versões do kernel, algo que ferramentas da época não conseguiam oferecer.

O Git se tornou um padrão global porque é:

  • rápido

  • distribuído (cada máquina tem o repositório completo)

  • seguro (baseado em hashing)

  • simples de sincronizar com servidores remotos


🛠️ 2. Como o Git funciona?

Ao contrário de sistemas antigos que salvavam apenas diferenças entre arquivos (diffs), o Git trabalha com snapshots completos do estado dos arquivos a cada commit.

Em resumo:

  • Ele tira uma “foto” do projeto.

  • Mas salva novamente apenas o que mudou, graças ao hashing e deduplicação.

  • Cada snapshot é um commit, formando uma linha do tempo.

Isso permite histórico rápido, seguro e fácil de navegar.


📦 3. Os objetos internos do Git

O Git é basicamente um banco de dados de objetos imutáveis, armazenados em .git/objects/.

Os tipos principais são:

1. Blob

Conteúdo de um arquivo.

2. Tree

Representa diretórios, apontando para blobs e outras trees.

3. Commit

Aponta para uma tree e para seus commits pais.

4. Tag

Marcadores para commits, usados geralmente para versões.

Isso garante uma estrutura poderosa e verificável.


🔐 4. Imutabilidade e hashes

Cada objeto é nomeado pelo hash do conteúdo.

Isso garante:

  • integridade criptográfica

  • histórico imutável

  • detecção de corrupção

  • deduplicação automática

Modificou o conteúdo? O hash muda.

Assim o Git sabe exatamente o que mudou e quando.


🌿 5. Branches: ponteiros leves

Um branch não é uma cópia do projeto.

É apenas um ponteiro para um commit.

  • main → aponta para o commit mais recente da linha principal

  • Criar branch → criar novo ponteiro

  • Commit em um branch → ponteiro avança

Por isso criar branches é barato e incentivado.


🔗 6. Histórico como um DAG

Os commits formam um grafo acíclico dirigido:

  • Cada commit aponta para seus pais

  • Merges têm dois pais

  • O histórico avança sempre para frente

É por isso que o Git é tão eficiente em representar múltiplas linhas de desenvolvimento.


📥 7. Staging Area (Index)

O Git tem uma área intermediária chamada index, onde escolhemos o que vai entrar no commit.

Isso permite:

  • commits mais limpos

  • controle granular

  • combinar partes de arquivos


📡 8. O que são repositórios remotos?

Servidores como GitHub, GitLab ou Bitbucket são apenas repositórios Git adicionais hospedados na nuvem.

Quando usamos:

  • git push → mandamos commits e atualizamos referências remotas

  • git pull → trazemos commits remotos e atualizamos nossa branch local

Nada de mágico: é só sincronização.


🔀 9. Merge vs Rebase

Merge

  • Cria um commit com 2 pais

  • Mantém histórico paralelo

Rebase

  • Reescreve commits, mudando seus pais

  • Produz histórico linear

  • Gera novos hashes

Ambos fazem parte do arsenal de um desenvolvedor moderno.


🧹 10. Reescrita de histórico

O Git nunca altera commits antigos — cria commits novos.

Os antigos ficam “órfãos” e podem ser removidos pelo git gc.


🎯 Resumo teórico

  • Git é um banco de dados imutável baseado em hashes.

  • Commits são snapshots.

  • Branches são ponteiros.

  • O histórico é um DAG.

  • Repositórios remotos são só referência extra.

Agora que entendemos Git… vamos ao GitHub.


🐙 11. O que é GitHub?

O GitHub é a maior plataforma de hospedagem de código do mundo, com milhões de repositórios.

Ele pertence à Microsoft e oferece:

  • hospedagem de repositórios

  • issues

  • pull requests

  • workflows de CI/CD (GitHub Actions)

  • colaboração em equipe

  • interface web rica

  • apps desktop e mobile

Em resumo:

Git controla seu código localmente; GitHub permite compartilhar, colaborar e publicar.


🚀 12. Como integrar Git + GitHub (tutorial simples e completo)

A seguir, um passo a passo direto e funcional.


1. Instale o Git

Verifique se já está instalado:

git --version
Enter fullscreen mode Exit fullscreen mode

Se não estiver, baixe em:

https://git-scm.com


2. Configure seu nome e email

git config --global user.name "Seu Nome"
git config --global user.email "seuemail@example.com"
Enter fullscreen mode Exit fullscreen mode

3. Crie um repositório local

No diretório do seu projeto:

git init
git add .
git commit -m "primeiro commit"
Enter fullscreen mode Exit fullscreen mode

4. Crie um repositório no GitHub

  1. Acesse https://github.com

  2. Clique em New repository

  3. Dê um nome

  4. Não marque nenhum arquivo (para evitar conflitos no push inicial)


5. Conecte o repositório local ao GitHub

Copie a URL HTTPS fornecida no GitHub e execute:

git remote add origin https://github.com/usuario/repositorio.git
Enter fullscreen mode Exit fullscreen mode

6. Defina a branch principal como main

git branch -M main
Enter fullscreen mode Exit fullscreen mode

7. Envie o projeto para o GitHub

git push -u origin main
Enter fullscreen mode Exit fullscreen mode

Pronto! 🎉

Seu projeto está online.


💬 13. Ciclo básico de trabalho no dia a dia

As operações principais:

git add .
git commit -m "mensagem"
git pull
git push
Enter fullscreen mode Exit fullscreen mode

⚠️ 14. Problemas comuns e soluções rápidas

1. Push rejeitado

git pull --rebase origin main
Enter fullscreen mode Exit fullscreen mode

2. Conflicts

Abra os arquivos, resolva, depois:

git add .
git commit
Enter fullscreen mode Exit fullscreen mode

3. Autenticação falha

  • Configure chave SSH

  • Ou faça login no GitHub CLI


📚 15. Cheatsheet (comandos principais do Git)

📌 Configuração

git config --global user.name
git config --global user.email
Enter fullscreen mode Exit fullscreen mode

📌 Inicialização

git init
Enter fullscreen mode Exit fullscreen mode

📌 Status e logs

git status
git log --oneline
Enter fullscreen mode Exit fullscreen mode

📌 Staging e commit

git add arquivo
git add .
git commit -m "mensagem"
Enter fullscreen mode Exit fullscreen mode

📌 Branches

git branch
git checkout -b nova-branch
git switch main
Enter fullscreen mode Exit fullscreen mode

📌 Merge & Rebase

git merge nome-branch
git rebase main
Enter fullscreen mode Exit fullscreen mode

📌 Sincronização com o remoto

git remote -v
git push
git pull
Enter fullscreen mode Exit fullscreen mode

📌 Clonar repositório

git clone url
Enter fullscreen mode Exit fullscreen mode

Top comments (0)