Skip to content

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

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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