Skip to main content

Cancelando uma GitHub Copilot CLI operação e revertendo alterações

Saiba mais sobre as diferentes maneiras de cancelar uma operação ativa Copilot e como reverter as alterações feitas durante uma sessão se o resultado não for o esperado.

Introdução

Ao trabalhar em uma sessão interativa Copilot CLI , você pode pressionar Esc ou Ctrl+C para controlar o que Copilot está fazendo. Ambas as teclas podem cancelar operações, mas funcionam de forma ligeiramente diferente:

  • Ctrl+C age de imediato, sem exigir um segundo pressionamento para confirmar — removendo primeiro as solicitações enfileiradas (uma por pressionamento) e, em seguida, cancelando a operação atual.
  • Um único pressionamento da tecla Esc proporciona um controle mais gradual e em etapas. Enquanto Copilot estiver em execução, pressionar Esc uma única vez não cancela imediatamente — isso exibe um lembrete, e pressioná-la uma segunda vez executa a próxima etapa: remover o prompt adicionado à fila mais recentemente ou cancelar a operação quando não houver mais nada na fila.

Se Copilot já tiver feito alterações e você quiser desfazê-las, poderá reverter para um ponto anterior na sessão. Como Copilot funciona, Copilot CLI rastreia as alterações de arquivo feitas à medida que responde a cada prompt. Isso permite retroceder para um ponto anterior pressionando Esc duas vezes quando Copilot estiver ocioso e a área de entrada estiver vazia. Ao retroceder, você escolhe se deseja retroceder somente a conversa ou também restaurar os arquivos que Copilot foram alterados.

O que pressionar o Esc faz em situações diferentes

Pressionar o Esc uma vez executa ações diferentes dependendo do estado atual da sessão:

Estado atualO que pressionar esc faz
Copilot está ativo sem nenhum prompt na fila.Exibe um lembrete: “Pressione Esc novamente para cancelar”. A operação em execução será cancelada somente se você pressionar Esc novamente dentro de meio segundo.
O Copilot está ativo e há solicitações na fila.Mostra o lembrete "Esc novamente para cancelar". Pressionar Esc novamente remove a solicitação adicionada à fila mais recentemente.
Uma caixa de diálogo de permissão está aberta.Pressionar Esc uma única vez recusa a solicitação pendente (não é necessário pressionar uma segunda vez).
Uma caixa de diálogo, sobreposição ou seletor está aberto.Fecha a caixa de diálogo, a superposição ou o seletor.
Copilot está inativo.Mostra um breve lembrete de que pressionar Esc mais uma vez rapidamente abrirá o seletor de retrocesso. Confira Reverter alterações.

Pressionar esc duas vezes rapidamente, quando Copilot estiver ocioso, permite reverter para um ponto anterior na sessão. Se uma operação estiver em andamento, um Esc duplo fará um dos seguintes procedimentos, nesta ordem de prioridade:

  • Cancela um comando de shell em execução.
  • Interrompe a resposta atual.
  • Interrompe agentes em segundo plano.
  • Limpa o texto na área de entrada.
  • Sai do modo shell.

Se nenhum deles se aplicar, o seletor de rebobinamento será exibido.

Quando usar esc em vez de Ctrl+C

A principal diferença entre essas duas maneiras de cancelar uma operação é que o Esc foi projetado para intervenção gradual direcionada, enquanto Ctrl+C é uma parada dura.

Use Esc quando quiser interagir Copilot sem necessariamente encerrar a operação atual. Por exemplo, se uma caixa de diálogo de permissão for exibida e você quiser negar essa solicitação específica, pressionar Esc ignorará a caixa de diálogo e Copilot continuará funcionando, ela simplesmente não usará a ferramenta que você negou. Da mesma forma, se você tiver enfileirado prompts de acompanhamento e quiser cancelá-los sem interromper o trabalho já em andamento, pressionar Esc remove o prompt adicionado à fila mais recentemente (repita para remover os anteriores), enquanto a operação atual continua sendo executada.

Use Ctrl+C quando quiser cancelar sem o segundo pressionamento de confirmação que Esc exige. Se não houver prompts na fila, um único Ctrl+C cancelará imediatamente a operação ativa. Se houver prompts na fila, cada Ctrl+C remove o prompt adicionado à fila mais recentemente — um por pressionamento — e cancela a operação ativa apenas quando a fila estiver vazia. Qualquer gravação de arquivo que já esteja em andamento será concluída— os arquivos não são deixados corrompidos no meio da gravação, mas todas as alterações planejadas restantes são abandonadas. Pressionar Ctrl+C uma segunda vez em dois segundos, quando a área de entrada estiver vazia, sairá totalmente da sessão.

Como regra geral, use esc quando quiser intervir seletivamente e Ctrl+C quando quiser parar e recomeçar.

Reverter alterações

Embora Copilot esteja inativo e não haja texto na área de entrada, você pode pressionar Esc duas vezes para exibir uma lista de pontos em sua sessão atual para a qual você pode reverter. Cada ponto corresponde a um prompt enviado e o retrocesso leva a sessão de volta ao estado em que estava imediatamente antes Copilot de começar a trabalhar nesse prompt.

Depois de escolher um ponto de retrocesso, você decide se deseja:

  • Rebobine somente a conversa, deixando seus arquivos intocados.
  • Rebobine os arquivos de conversa e restauração, que reverte os arquivos Copilot alterados, deixando suas próprias edições posteriores em vigor.

Como ele restaura apenas os arquivos Copilot alterados em vez de todo o workspace, o retrocesso funciona em qualquer diretório, incluindo pastas que não são repositórios Git.

Para obter detalhes completos de como usar o keypress Esc duplo para reverter as alterações feitas durante uma sessão, consulte Reverter as alterações feitas durante uma GitHub Copilot CLI sessão.

Aviso

O retrocesso restaura todo o workspace para o estado em que estava no instantâneo selecionado. Isso reverte todas as alterações feitas após esse ponto , não apenas alterações feitas por Copilot, mas também quaisquer edições manuais e alterações resultantes de comandos de shell. Todos os novos arquivos criados no workspace depois que o instantâneo foi tirado são excluídos, independentemente do status do Git.

O que acontece quando você reverte

As ações que ocorrem quando você reverte dependem da opção escolhida.

Se você optar por retroceder os arquivos de conversa e restauração:

  1. Os arquivos são restaurados. Os arquivos Copilot alterados são revertidos para o estado em que estavam antes do prompt selecionado. Os arquivos cujo conteúdo atual não corresponde mais ao que foi escrito pela última vez, por exemplo, porque você mesmo os editou, são ignorados para que Copilot suas edições posteriores não sejam substituídas.
  2. O histórico da sessão é truncado. A conversa é relançada para o ponto selecionado. Todas as mensagens e chamadas de ferramenta que ocorreram após esse ponto são removidas da sessão.
  3. Instantâneos obsoletos são removidos. As alterações de arquivo capturadas para as voltas descartadas são limpas. Os pontos anteriores permanecem disponíveis para retrocessos futuros.
  4. Reversão confirmada. Após a reversão, Copilot exibe uma mensagem indicando quantos arquivos foram restaurados e observa todos os arquivos que foram ignorados.
  5. Seu prompt é restaurado. O prompt associado ao ponto selecionado é colocado na área de entrada, para que você possa editá-lo e reenviá-lo.

Se você optar por retroceder somente a conversa, seus arquivos serão deixados intocados: o histórico da sessão é truncado (etapa 2) e seu prompt é restaurado para a área de entrada (etapa 5).

Alterações que não podem ser revertidas

A restauração de arquivo é ignorada ou indisponível nas seguintes situações:

  • Arquivos com mais de 10 MB. Arquivos individuais maiores que 10 MB são ignorados durante a captura, portanto, as alterações nesses arquivos não são restauradas durante uma reversão.
  • Mais de 500 arquivos alterados. Se mais de 500 arquivos foram alterados durante uma única curva, as alterações de arquivo para essa curva não serão capturadas, portanto, você não poderá restaurar arquivos para ele. Outras voltas não são afetadas.
  • Arquivos que você mesmo alterou. Arquivos cujo conteúdo atual não corresponde mais ao que Copilot foi escrito pela última vez são deixados intocados em vez de substituídos.
  • Sessões sem acompanhamento de arquivo. Se você retomar uma sessão iniciada antes da habilitação do controle de alterações de arquivo, somente o retrocesso da conversa estará disponível. Inicie uma nova sessão para poder restaurar as alterações de arquivo.
  • Sessões de backup remoto ou ocupadas. O rebobinamento não está disponível para sessões com suporte remoto ou enquanto a sessão ainda tem trabalho em andamento.

Leitura adicional