Descrição do problema
Ao executar a CLI para gerar mensagens de commit com base apenas nos arquivos que já estão staged, o comando acaba forçando a adição de todos os arquivos modificados / não rastreados no repositório.
Caso esse comportamento seja intencional ou configurável via flag/opção, não encontrei essa informação na documentação.
Comportamento esperado
- Utilizar somente os arquivos já staged (ex: via git diff --cached)
- Gerar a mensagem de commit sem modificar o staging area
Comportamento atual
- Ao rodar a CLI, todos os arquivos do repositório são adicionados ao staging
- Arquivos que o usuário optou por não incluir acabam entrando no commit
- O estado do Git é alterado de forma inesperada
Passos para reproduzir
- Modifique múltiplos arquivos no repositório
touch arquivo-a.ts arquivo-b.ts
- Adicione ao staging apenas alguns deles:
- Execute a CLI e depois aborte o commit selecionando a opção [A]:
- Verifique o status do Git:
Notas de debug (podem ajudar)
Analisei o código e encontrei um possível ponto causador do problema:
arquivo: src/cli.ts
linha: 540
// Don't stage files if amending
if (!options.amend) {
addFiles(".");
}
ao realizar um commit trivial (sem fazer amend), o comportamento descrito ocorre.
Descrição do problema
Ao executar a CLI para gerar mensagens de commit com base apenas nos arquivos que já estão staged, o comando acaba forçando a adição de todos os arquivos modificados / não rastreados no repositório.
Caso esse comportamento seja intencional ou configurável via flag/opção, não encontrei essa informação na documentação.
Comportamento esperado
Comportamento atual
Passos para reproduzir
Notas de debug (podem ajudar)
Analisei o código e encontrei um possível ponto causador do problema:
arquivo: src/cli.ts
linha: 540
ao realizar um commit trivial (sem fazer amend), o comportamento descrito ocorre.