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 está em execução, pressionar Esc uma vez não cancela imediatamente — exibe um lembrete, e pressioná-la uma segunda vez interrompe a operação em andamento. Em uma sessão local, todos os prompts enfileirados são processados na interação seguinte. Em uma sessão com backend remoto ou em uma sessão anexada, o segundo pressionamento cancela completamente a operação, em vez disso, e as solicitações enfileiradas não são transferidas para a interação seguinte.

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 voltar, você escolhe se quer voltar apenas a conversa ou também restaurar os arquivos que Copilot alterou.

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 o Esc novamente interrompe a operação atual. Em uma sessão local, os prompts na fila são processados no próximo turno; em uma sessão anexada ou com backend remoto, a operação é totalmente cancelada e os prompts na fila não são executados em um turno subsequente.
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 o Esc duas vezes rapidamente, quando Copilot estiver ocioso e a área de entrada estiver vazia, permitirá que você reverta para um ponto anterior na sessão. Em outras situações, um Esc duplo faz 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.

Se nenhuma dessas opções se aplicar, o seletor de retrocesso 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 o Esc quando quiser uma tecla de confirmação antes de interromper uma operação. Se uma caixa de diálogo de permissão for exibida e você quiser negar essa solicitação específica, pressionar Esc uma vez rejeitará a solicitação e interromperá a operação atual. Se você tiver enfileirado prompts de acompanhamento em uma sessão local, pressionar a tecla Esc duas vezes interromperá a operação atual e processará os prompts enfileirados na próxima interação. Em uma sessão com backend remoto ou anexada, pressionar Esc duas vezes cancela totalmente a operação em vez disso, e os prompts enfileirados não são executados como uma interação de acompanhamento.

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 que você enviou, e retroceder faz a sessão voltar ao estado em que estava imediatamente antes de Copilot 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.
  • Volte na conversa e restaure arquivos, o que reverte as alterações feitas nos arquivos Copilot, mantendo suas edições posteriores.

Como ele restaura apenas os arquivos Copilot que foram alterados, em vez de todo o espaço de trabalho, a reversão 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 a conversa e restaurar os arquivos:

  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 Copilot escreveu por último — por exemplo, porque você mesmo os editou — são ignorados para que suas edições mais recentes não sejam sobrescritas.
  2. O histórico da sessão é truncado. A conversa retorna ao ponto selecionado. Todas as mensagens e chamadas de ferramenta que ocorreram após esse ponto são removidas da sessão.
  3. Snapshots obsoletos são removidos. As alterações de arquivo capturadas das iterações descartadas são removidas. Os pontos anteriores continuam disponíveis para retornos futuros.
  4. Reversão confirmada. Após a reversão, Copilot exibe uma mensagem indicando quantos arquivos foram restaurados e informa quaisquer arquivos que tenham sido 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 arquivos é ignorada ou fica 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 um único turno, as alterações nos arquivos desse turno não serão capturadas, portanto, você não poderá restaurar arquivos desse turno. Outras interações 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 rastreamento de arquivos. Se você retomar uma sessão que foi iniciada antes de o rastreamento de alterações em arquivos ser habilitado, somente o rebobinamento 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. Retroceder não está disponível para sessões com backend remoto nem enquanto a sessão ainda tiver trabalho em andamento.

Leitura adicional