Skip to content

Git e GitHub starline

Aprenda o essencial para versionar projetos com Git e colaborar usando GitHub.


📌 Resumão rápido

  • Git → versionamento local/distribuído (salva versões do código).
  • GitHub → backup online + colaboração em equipe.
  • Push → envia código pro GitHub.
  • Pull → baixa atualizações do GitHub.
  • Branching → ramificações para trabalhar em paralelo.
  • Merging → junta branches (ex.: featuremain).
  • Pull Request (PR) → revisão antes de juntar.
  • Conflitos → quando duas branches mexem no mesmo trecho de jeitos diferentes.

Git

Conceitos importantes

  • Changed Area: alterações locais ainda não staged.
  • Staged Area: arquivos prontos para o próximo commit.
  • HEAD: aponta para a versão/branch atual.
  • .gitignore: arquivos/pastas que o Git deve ignorar (ex.: .env, node_modules).

Comandos básicos

git init                  # inicia repositório
git status                # mostra status dos arquivos
git add .                 # adiciona todos
git add <arquivo>          # adiciona específico
git commit -m "mensagem"  # cria commit
git log --all --graph     # histórico visual

Ajustando versões

git commit --amend -m "nova mensagem"   # altera último commit
git reset <arquivo>                     # tira da staged area
git checkout <id-do-commit>             # vai para commit específico

[!NOTE]
git checkout <id> leva a detached HEAD — cuidado pra não perder commits novos; crie uma branch antes.


Personalizações

git config --global alias.s "status"   # cria atalho (git s)
git config --global user.name "Seu Nome"
git config --global user.email "vc@ex.com"
rm -rf .git                            # apaga todo o repo local

[!TIP]
Use git diff e git diff --staged para revisar antes de commitar.


GitHub

O que é

Plataforma online para hospedar repositórios Git, trabalhar em equipe, abrir issues e pull requests.


Conectar local ↔ remoto

git remote add origin <url>   # conecta repo local ao remoto
git remote remove origin      # remove conexão

[!NOTE]
Para autenticar git push, use Personal Access Token (em vez de senha).


Fluxo básico de uso

# primeira vez
git add .
git commit -m "mensagem"
git push --set-upstream origin main

# depois
git push

# atualizar local
git fetch
git pull origin main

Clonar repositório

git clone <url>              # clona repo
git clone <url> <pasta>      # clona em pasta personalizada

Branching

Por que usar

Trabalhar em features/correções sem atrapalhar a main.

Comandos

git branch <nome>       # cria branch
git checkout <nome>     # troca de branch
git switch -c <nome>    # cria e troca (atalho moderno)

Merging

Conceito

Juntar a branch de feature na branch principal.

git checkout main
git pull origin main
git merge minha-feature

Conflitos

Ocorrem quando duas branches alteram o mesmo trecho.

  • Git marca com <<<<<<<, =======, >>>>>>>.
  • Resolve manualmente no editor, depois:
git add .
git commit
git push origin minha-feature

Feature Branch Workflow

  1. Clonar repositório
    git clone <url>

  2. Criar branch
    git checkout -b feature/minha-coisa

  3. Trabalhar e commitar
    git add . && git commit -m "feat: implementa X"

  4. Subir branch
    git push origin feature/minha-coisa

  5. Abrir Pull Request no GitHub

  6. Base: main ← Compare: feature/minha-coisa
  7. Escreve descrição clara, linka issues, explica testes.

  8. Revisões

  9. Corrigir o que pedirem, dar push novamente.

  10. Merge

  11. Após aprovação, escolher método de merge (Merge commit / Squash / Rebase).
  12. Deletar branch remota se não for mais necessária.

Observações finais

  • Use .gitignore para não versionar arquivos sensíveis.
  • Proteja a main: só merge via Pull Request.
  • Commits descritivos (evite “update” ou “teste”).
  • Use git reflog para recuperar commits perdidos.
  • Tokens/SSH para autenticar pushes.

Documentação criada por Matheus Saraiva (@apptrx)