Git simples e rápido

Mascote do LinuxPro diante de um quadro com o diagrama de branch e merge do Git, ao lado do losango do projeto

Nota (2026): o fluxo abaixo continua o do dia a dia. O pacote agora é git (não git-core), o ramo padrão costuma ser main e a chave SSH moderna é Ed25519. A história — BitKeeper, os dez dias de 2005, Junio Hamano, Git 2.55 — está em A história do Git.

Cheatsheet curto: instalar, configurar, clonar, commitar, enviar. Sem teoria de objeto. Se você nunca usou Git, estes são os comandos que resolvem 90% dos casos.

Instalar

Debian/Ubuntu e derivados:

sudo apt update
sudo apt install git
git --version

Em 2026 o pacote é git. O nome antigo git-core era um metapacote; não procure por ele.

Nome, e-mail e ramo padrão

git config --global user.name "Seu Nome"
git config --global user.email seu@email.com
git config --global init.defaultBranch main
git config --global pull.rebase false

user.name and user.email entram em todo commit. Sem isso o Git reclama. O ramo padrão da indústria deixou de ser master por volta de 2020; main é o que GitHub, GitLab e o próprio Git usam em repositório novo.

Chave SSH

Ed25519, não RSA 4096 — menor e o default atual. Detalhe do fluxo sem senha: SSH sem senha.

ssh-keygen -t ed25519 -C "seu@email.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub

Cole a chave pública em GitHub/GitLab → Settings → SSH keys. Teste:

ssh -T git@github.com

Repositório novo ou clone

mkdir projeto && cd projeto
git init
# ou, o caso comum:
git clone git@github.com:usuario/projeto.git
cd projeto

Add, commit, status

git status
git add arquivo.txt          # ou: git add -A
git commit -m "mensagem curta no imperativo"
git log --oneline -5

O commit fica no repositório local. Ainda não está no GitHub.

Branch: switch, não só checkout

git switch -c feature/login    # cria e entra
git switch main                # volta
git merge feature/login
git branch -d feature/login

git switch and git restore (desfazer arquivo) existem desde o Git 2.23 (2019) e separam o que o checkout fazia demais. checkout ainda funciona; para código novo, use os dois novos.

git restore arquivo.txt           # descarta mudança no working tree
git restore --staged arquivo.txt  # tira do index, mantém o arquivo

Remote e push

git remote add origin git@github.com:usuario/projeto.git
git push -u origin main

Nas próximas vezes: git push and git pull. O -u grava o upstream. Se o remoto ainda usa master, troque o nome do ramo — não invente main num remoto que não tem.

git branch -M main    # só se você está migrando um repo antigo

O fluxo de um dia

git pull
git switch -c fix/typo
# edita
git add -A
git commit -m "Corrige typo no README"
git push -u origin fix/typo
# abre o pull request no GitHub/GitLab
git switch main

Vídeo: Descomplicando o Git (LinuxTips)

The LinuxTips do Jeferson Fernando gravou o “Descomplicando o GIT” — ainda o melhor passeio em português pelo fluxo. A história (BitKeeper, os dez dias, o Git 2.55) ficou no post novo.

Mais