📘Guia Prático: Introdução ao Git + Como Subir Seu Código no GitHub
Source: Dev.to
Introdução
No cenário atual do desenvolvimento de software usamos dezenas de linguagens, frameworks e ferramentas. Independentemente da stack, todo desenvolvedor precisa dominar, desde cedo, o controle de versão.
Duas ferramentas fundamentais são:
- Git – o sistema de controle de versão mais usado do mundo.
- GitHub – plataforma de hospedagem e colaboração baseada em Git.
Antes de mostrar como integrar Git e GitHub, é essencial 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.
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 as 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
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. 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 um histórico rápido, seguro e fácil de navegar.
O Git é basicamente um banco de dados de objetos imutáveis, armazenados em .git/objects/. Os tipos principais são:
- Blob – conteúdo de um arquivo.
- Tree – representa diretórios, apontando para blobs e outras trees.
- Commit – aponta para uma tree e para seus commits pais.
- Tag – marcadores para commits, usados geralmente para versões.
Cada objeto é nomeado pelo hash do seu conteúdo, garantindo:
- integridade criptográfica
- histórico imutável
- detecção de corrupção
- deduplicação automática
Um branch não é uma cópia do projeto; é apenas um ponteiro para um commit. Por exemplo:
main → aponta para o commit mais recente da linha principal
Criar um branch cria um novo ponteiro; ao fazer commit em um branch, o ponteiro avança. Por isso, criar branches é barato e incentivado.
Os commits formam um grafo acíclico dirigido (DAG):
- Cada commit aponta para seus pais.
- Merges têm dois pais.
- O histórico avança sempre para frente.
O Git tem uma área intermediária chamada index, onde escolhemos o que vai entrar no commit, permitindo commits mais limpos, controle granular e combinação de partes de arquivos.
O que são repositórios remotos?
Servidores como GitHub, GitLab ou Bitbucket são apenas repositórios Git adicionais hospedados na nuvem. As principais operações são:
git push→ envia commits e atualiza referências remotas.git pull→ traz commits remotos e atualiza a branch local.
Merge
- Cria um commit com dois 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. O Git nunca altera commits antigos — cria novos commits. 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 apenas referências extras.
GitHub
O GitHub é a maior plataforma de hospedagem de código do mundo, com milhões de repositórios. 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.
Passo a passo
1. Instale o Git
git --version
Se não estiver instalado, baixe em .
2. Configure seu nome e e‑mail
git config --global user.name "Seu Nome"
git config --global user.email "seuemail@example.com"
3. Crie um repositório local
# No diretório do seu projeto
git init
git add .
git commit -m "primeiro commit"
4. Crie um repositório no GitHub
- Acesse .
- Clique em New repository.
- Defina um nome.
- Não marque nenhum arquivo (para evitar conflitos no push inicial).
5. Conecte o repositório local ao GitHub
git remote add origin https://github.com/usuario/repositorio.git
6. Defina a branch principal como main
git branch -M main
7. Envie o projeto para o GitHub
git push -u origin main
Pronto! 🎉 Seu projeto está online.
Operações principais
git add .
git commit -m "mensagem"
git pull
git push
Problemas comuns
-
Push rejeitado
git pull --rebase origin main -
Conflitos
-
Abra os arquivos, resolva, depois:
git add . git commit
-
-
Autenticação falha
- Configure chave SSH ou faça login via GitHub CLI.
Cheatsheet (comandos principais do Git)
Configuração
git config --global user.name
git config --global user.email
Inicialização
git init
Status e logs
git status
git log --oneline
Staging e commit
git add arquivo
git add .
git commit -m "mensagem"
Branches
git branch
git checkout -b nova-branch
git switch main
Merge & Rebase
git merge nome-branch
git rebase main
Sincronização com o remoto
git remote -v
git push
git pull
Clonar repositório
git clone url