Diretório
O arquivo no seu disco — o que o seu editor mostra. As edições chegam aqui primeiro.
Cada visualização é movida por um simulador de Git cuja saída é verificada com o Git real. Veja o que cada parte do palco significa — e um ao vivo para experimentar.
git commitPressione ▶ e veja um arquivo viajar do seu disco para a área de preparação e depois para um commit. Para digitar seus próprios comandos, abra a área de prática.
A tabela à esquerda acompanha cada arquivo pelos três lugares onde o Git o guarda. Um rótulo de versão (v1, v2…) muda quando o conteúdo muda, e uma célula pisca quando um comando mexe nela.
O arquivo no seu disco — o que o seu editor mostra. As edições chegam aqui primeiro.
O rascunho do seu próximo commit. O git add copia uma versão para cá.
A versão do último commit da branch em que você está.
Abaixo de cada nome de arquivo: unchanged, modified, staged, untracked, conflict… exatamente o que o git status diria.
O lado direito desenha o seu repositório. Tudo nele vem do estado real após cada comando — nada é posicionado à mão.
Um commit, com o hash curto e a mensagem. Os hashes são reais: são calculados a partir do conteúdo.
Vai de um pai para o filho. Um commit de merge tem dois pais, então duas linhas se encontram.
Uma branch é só um rótulo móvel sobre um commit (main, feature/login…).
Onde você está. Fica ao lado da branch em que você está, ou direto sobre um commit quando o HEAD está desanexado.
origin/main e companhia: a sua última cópia conhecida das branches do servidor, atualizada por fetch, pull e push.
Um commit inalcançável — nenhuma branch aponta mais para ele, mas ele ainda existe (o reflog pode trazê-lo de volta).
Aparece quando uma lição usa um remoto: o repositório do servidor acima do seu, para que push e fetch movam commits entre eles de forma visível.
Cada lição é uma lista de comandos do Git. Um simulador de Git integrado ao site os executa no seu navegador — antes de cada versão, a saída dele é verificada linha por linha com o Git 2.48 real.
Comandos interativos (add -p, rebase -i) pausam em cada pergunta para você ler antes de a resposta ser digitada.
Quando o Git abre um editor (mensagem de commit, lista de tarefas do rebase, mensagem de tag), o palco mostra o arquivo sendo editado.
cat index.htmlcode index.htmlgit add index.htmlAs lições são só para assistir. Para digitar seus próprios comandos, abra a área de prática (link abaixo de cada visualização): o grafo reage exatamente como nas lições, e dicas sugerem os próximos comandos mais prováveis quando você trava.
Uma linha de narração como “um colega envia…” significa que outra pessoa mudou o servidor — o motivo de um push ou pull posterior se comportar assim.
Um passo é dividido em momentos. Cada momento muda uma só coisa e a explica em uma legenda na parte de baixo do palco; todo o resto fica esmaecido.
O comando é digitado antes de qualquer coisa se mover, e os painéis só mudam quando o efeito dele chega.
2b4c917 — um instantâneo de tudo o que está na área de preparação.main avança para ele (o HEAD vai junto — ele aponta para o main)O que acabou de acontecer e por quê, em uma frase. O painel ao lado do terminal repete isso com a explicação do passo.
git log --onelineecho "cart.push(item)" >> app.jsecho "export function login() {}" > login.jsgit statusgit add app.js login.jsA lista numerada abaixo da explicação. Clique em qualquer passo para ir até ele.
Assista como um vídeo ou avance passo a passo.
Recomeçar, passo anterior, reproduzir / pausar, próximo passo.
Arraste para ir a qualquer momento da lição.
De 0,5× a 2×.
Clique no palco e depois Espaço = reproduzir / pausar, ← / → = passo anterior / próximo.
Onde ficam as visualizações.
--force-with-leaseGit ≥ 1.8.5RecomendadoA visualização principal cobre o uso diário do comando. Cada opção tem a sua própria visualização curta — abra-a pela lista de opções.
Cada opção tem um selo: Recomendado, Quando necessário ou Não recomendado, com um motivo de uma linha.
Abrir o diff no seu editor antes de preparar. Você escolhe à mão quais mudanças incluir.
$ git add -e app.jsO git add -e abre o diff inteiro como um patch no seu editor; você apaga as linhas que não quer preparar e o git aplica o que sobra. É um arquivo editado à mão, não uma mudança de estado do repositório que o palco consiga animar — o git add -p é o equivalente visual.
Algumas opções dependem de coisas fora do repositório (seu editor, permissões de arquivos, finais de linha). Elas têm um cartão explicativo em vez de uma animação.
$ git switch -c feature/login$ echo "export function login() {}" > login.js && git add login.js && git commit -m "Add login page"$ echo "login()" >> app.js && git commit -am "Call login on load"Demonstrações do mundo real contadas como uma história contínua, divididas em seções com título que você pode clicar.
O botão de engrenagem no cabeçalho reúne as configurações: idioma, site claro ou escuro, tema das visualizações, modo daltônico e tamanho do texto.
Siga um fluxo de trabalho completo ou escolha um comando.