Skip to content

Comportamento inesperado: CLI adiciona todos os arquivos ao invés de usar apenas os staged #13

@kauelima21

Description

@kauelima21

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

  1. Modifique múltiplos arquivos no repositório
touch arquivo-a.ts arquivo-b.ts
  1. Adicione ao staging apenas alguns deles:
git add arquivo-a.ts
  1. Execute a CLI e depois aborte o commit selecionando a opção [A]:
git-commit-ai
  1. Verifique o status do Git:
git status

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions