Git School · FluxGit

Commit de parte de um arquivo

FluxGit ·

Os blocos são casos diferentes, não um script único. Escolha o caso do seu repositório. Substitua branches, caminhos e VERIFIED_COMMIT antes de usar. Comandos de cancelamento só valem para sua operação ativa; não execute ambas as alternativas.

Resposta curta

Git cria o commit a partir do índice. Prepare apenas a correção e deixe as outras edições no diretório de trabalho para formar commits separados.

Exemplo e condições

O exemplo contém uma correção e uma impressão de depuração no mesmo arquivo. Elas precisam aparecer como mudanças de texto distintas para revisão.

Inspecione antes de alterar

Compare git diff e git diff --cached. O primeiro mostra alterações não preparadas; o segundo mostra exatamente o conteúdo do próximo commit.

git status --short
git diff
git diff --cached

Mantenha referência ou checkout separado

Preparar uma mudança não apaga a edição restante. O índice e o diretório de trabalho são estados separados que você pode inspecionar.

Primeiro fluxo

No FluxGit, abra o diff e use Stage change na correção. Confira o painel de commit: a impressão de depuração deve continuar não preparada.

Escolha o outro resultado deliberadamente

No terminal, git add -p permite aceitar ou rejeitar hunks. As opções s e e dividem um hunk ou editam seu patch quando apropriado.

git add -p -- app.py
git diff --cached

Limites e exceções

A menor unidade do FluxGit é uma mudança dentro de um hunk. Uma mudança de seis linhas é preparada inteira; não são intervalos arbitrários selecionados com o mouse.

Conflitos e limpeza

Despreparar mantém o arquivo; descartar altera seu conteúdo. O FluxGit captura uma imagem de segurança antes do descarte parcial; são ações diferentes.

Confira o resultado

Leia git diff --cached antes de confirmar e git show depois. Confira também git diff para verificar que o trabalho pendente continua no arquivo.

git show --stat HEAD
git diff
git status --short

Perguntas frequentes

Para um commit comum e privado, git reset --soft HEAD^ pode devolver o conteúdo ao índice. Confira o estado e coordene antes de reescrever histórico compartilhado.

Revise a operação no FluxGit

Commit Studio mantém diff e mensagem juntos. Revise o conteúdo enquanto escreve e crie commits com uma intenção clara.

Referências oficiais do Git

Git School · 1:47

Commit de parte de um arquivo no Git: prepare só a correção

Corrigiu um bug e deixou um print de depuração no mesmo arquivo? Prepare somente a correção. Veja como o Git usa a área de preparação, como selecionar uma mudança no FluxGit e como fazer isso com git add -p.

Commit de parte de um arquivo no Git: prepare só a correção
Narração em inglês. Há legendas manuais no YouTube em 11 idiomas. Esta transcrição está em português brasileiro.

Assistir no YouTube — abre uma nova aba

Gravado em um repositório de teste.

Ler a transcrição da narração
  1. 00:03 Você corrigiu um bug e deixou um print de depuração no mesmo arquivo. Quer um commit limpo: a correção, sem o print.
  2. 00:11 Este é o arquivo no FluxGit: app.py, com duas mudanças.
  3. 00:17 É por isso que funciona. O Git não faz commit da sua pasta, mas da área de preparação. As duas mudanças começam somente no disco. Stage change coloca apenas a correção na área de preparação. O commit leva exatamente isso, e o print fica no disco, sem commit.
  4. 00:36 Abra o arquivo. O diff mostra as duas mudanças, cada uma com seu próprio botão Stage change.
  5. 00:43 Clique em Stage change na correção. Só essa mudança é preparada; o print fica onde está.
  6. 00:51 De volta ao painel de commit: a correção está preparada, o print não.
  7. 00:56 Escreva a mensagem e faça o commit.
  8. 01:06 O novo commit contém a correção, e só ela. O print continua no disco, sem commit.
  9. 01:13 Mudou de ideia? Desfazer retira o commit. A correção volta à área de preparação, e os arquivos não mudam.
  10. 01:22 No terminal, o equivalente é git add -p. O Git pergunta sobre cada mudança: responda sim para a correção e não para o print, depois faça o commit.
  11. 01:33 Resumo: prepare mudanças, não arquivos inteiros. Uma ideia por commit. Use Desfazer se errar. Próxima aula: corrigir o último commit.

Fluxos relacionados

Baixar FluxGit