Git e GitHub
¶
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.:
feature→main). - 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]
Usegit diffegit diff --stagedpara 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 autenticargit 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¶
-
Clonar repositório
git clone <url> -
Criar branch
git checkout -b feature/minha-coisa -
Trabalhar e commitar
git add . && git commit -m "feat: implementa X" -
Subir branch
git push origin feature/minha-coisa -
Abrir Pull Request no GitHub
- Base:
main← Compare:feature/minha-coisa -
Escreve descrição clara, linka issues, explica testes.
-
Revisões
-
Corrigir o que pedirem, dar push novamente.
-
Merge
- Após aprovação, escolher método de merge (Merge commit / Squash / Rebase).
- Deletar branch remota se não for mais necessária.
Observações finais¶
- Use
.gitignorepara não versionar arquivos sensíveis. - Proteja a
main: só merge via Pull Request. - Commits descritivos (evite “update” ou “teste”).
- Use
git reflogpara recuperar commits perdidos. - Tokens/SSH para autenticar pushes.
Documentação criada por Matheus Saraiva (@apptrx)