Skip to main content
Skip to content

Cancelando operações e revertendo alterações na CLI GitHub Copilot

Interrompa uma operação ativa Copilot CLI ou rebobine uma sessão para desfazer as alterações no histórico da conversa e, opcionalmente, restaurar arquivos.

Introdução

Ao trabalhar em uma sessão interativa Copilot CLI , você pode interromper o trabalho em andamento ou desfazer o trabalho que já foi concluído:

  • Cancele a operação usando Esc ou Ctrl+C. Essas teclas se comportam de forma diferente dependendo de se Copilot está funcionando, os prompts são enfileirados ou uma caixa de diálogo está aberta.
  • Reverta o trabalho concluído pressionando Esc duas vezes quando Copilot estiver ocioso ou usando o /undo comando de barra ou seu /rewind alias.

Ao reverter, você pode escolher se deseja retroceder apenas a conversa ou também restaurar os arquivos que Copilot alterou.

Rewind funciona em qualquer diretório, incluindo pastas que não são repositórios Git. Ele restaura apenas os arquivos que Copilot alterou.

Cancelamento de uma operação

Use o Esc quando desejar um controle gradual direcionado. Enquanto Copilot está funcionando, o primeiro pressionamento exibe um lembrete e um segundo pressionamento interrompe a operação. Um único pressionamento também fecha uma caixa de diálogo aberta ou nega uma solicitação de permissão pendente.

Use Ctrl+C quando quiser cancelar sem o segundo pressionamento de confirmação que Esc exige. Um único Ctrl+C cancela imediatamente a operação ativa e limpa todos os prompts enfileirados. 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.

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

O efeito de pressionar Esc depende do estado atual da sessão.

Estado atualO que pressionar esc faz
Copilot está ativo sem nenhum prompt na fila.Exibe um lembrete "Esc novamente para cancelar". Pressione Esc novamente dentro de meio segundo para cancelar a operação.
Copilot está ativo e os prompts são enfileirados.Exibe o lembrete de cancelamento. Pressionar o Esc novamente interrompe a operação atual. Em uma sessão local, os prompts enfileirados são processados como o próximo turno. Em uma sessão anexada ou com suporte remoto, a operação é totalmente cancelada e os prompts na fila não são executados como uma interação subsequente.
Uma caixa de diálogo de permissão está aberta.Nega a solicitação pendente sem exigir um segundo pressionamento.
Uma caixa de diálogo, sobreposição ou seletor está aberta.Fecha a caixa de diálogo, a superposição ou o seletor.
Copilot está inativo.Exibe um lembrete de que pressionar Esc novamente rapidamente abrirá o seletor de retrocesso.

Pressione Esc duas vezes rapidamente para abrir o seletor de retrocesso somente quando Copilot estiver ocioso e a área de entrada estiver vazia. Em outras situações, um Esc duplo executa a primeira ação aplicável nesta ordem:

  1. Cancela um comando de shell em execução.
  2. Interrompe a resposta atual.
  3. Interrompe agentes em segundo plano.
  4. Limpa o texto na área de entrada.

Reverter com um pressionamento duplo da tecla Esc

Aviso

  • O retrocesso não pode ser desfeito. Depois de reverter, o histórico das sessões posteriores será removido permanentemente.
  • Se você optar por restaurar arquivos, Copilot restaurará apenas os arquivos que ele alterou e ignorará qualquer arquivo cujo conteúdo atual não corresponda mais ao que ele escreveu pela última vez, para que suas próprias edições posteriores não sejam substituídas.

Pré-requisitos

  • Um ponto de retrocesso deve existir. Você não pode reverter antes do primeiro prompt em uma sessão.
  • A restauração de arquivo só está disponível para sessões que acompanharam as alterações 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 será oferecido. Inicie uma nova sessão para poder restaurar as alterações de arquivo.
  • O rebobinamento não está disponível para sessões com backend remoto ou enquanto a sessão ainda tem trabalho em andamento.

Quando Copilot terminar de responder a um prompt inserido por você:

  1. Verifique se a área de entrada está vazia e se nenhum trabalho está em andamento. Se houver texto na área de entrada, pressionar Esc duas vezes em sucessão rápida limpará o texto em vez de abrir o seletor.

  2. Pressione Esc duas vezes em sequência rápida para abrir o seletor de retrocesso.

    O seletor lista os pontos de reversão disponíveis para a sessão atual, com o mais recente primeiro. Os dez pontos mais recentes são exibidos ao mesmo tempo. Se houver mais de dez, use as teclas ↑ e ↓ para rolar por elas. Para cada ponto de retorno, o início do prompt que você inseriu é mostrado, bem como há quanto tempo você o enviou. Para turnos que alteraram arquivos, o número de linhas adicionadas e removidas por esse turno também é mostrado.

  3. Escolha um ponto de retrocesso e pressione Enter.

    Escolher um ponto de retrocesso abre um menu de ação em que você pode selecionar somente Conversa ou Conversa + arquivos. Este último não está disponível para um ponto de restauração quando nem essa etapa nem qualquer etapa posterior alteraram os arquivos que podem ser restaurados. Antes de restaurar, Copilot mostra uma visualização por arquivo das alterações para que você possa confirmar.

    Observação

    O retrocesso é aplicado em relação ao estado imediatamente antesCopilot de começar a trabalhar no prompt, não imediatamente depois que ele terminou de trabalhar no prompt.

    O prompt selecionado é mostrado na área de entrada, para que você possa editá-lo e reenviá-lo, se necessário.

Reverter com o comando de barra /undo

O comando de barra /undo e seu alias /rewind fornecem uma maneira alternativa de abrir o seletor de retrocesso.

Ambos os comandos produzem o mesmo resultado obtido pressionando Esc duas vezes quando Copilot está ocioso e não há texto na área de entrada.

O que acontece quando você reverte

Se você optar por retroceder a conversa e restaurar arquivos:

  1. Copilot restaura os arquivos que ele alterou para seu estado antes do prompt selecionado. Ele ignora os arquivos que você editou depois.
  2. A conversa retorna ao ponto selecionado. Mensagens e chamadas de ferramenta após esse ponto são removidas.
  3. As alterações de arquivo capturadas para as interações descartadas são removidas. Os pontos de retrocesso anteriores permanecem disponíveis.
  4. Copilot relata quantos arquivos foram restaurados e identifica quaisquer arquivos ignorados.
  5. O prompt selecionado é colocado na área de entrada para que você possa editá-lo e reenviá-lo.

Se você optar por retroceder apenas a conversa, seus arquivos serão deixados intocados. O histórico posterior da sessão é removido e o prompt selecionado é restaurado para a área de entrada.

Alterações que não podem ser restauradas

A restauração de arquivos é ignorada ou indisponível nessas situações:

  • Arquivos com mais de 10 MB: alterações em arquivos individuais com mais de 10 MB não são registradas.
  • Mais de 500 arquivos alterados: se uma única etapa alterar mais de 500 arquivos, as alterações de arquivo para essa etapa não serão capturadas. Outras interações não são afetadas.
  • Arquivos que você mesmo alterou: se o conteúdo atual de um arquivo não corresponder mais ao que Copilot gravou por último, o arquivo será deixado intocado.
  • Sessões sem acompanhamento de arquivo: se uma sessão foi iniciada antes que o controle de alteração de arquivo fosse habilitado, somente o retrocesso da conversa estará disponível.
  • Sessões com suporte remoto ou ocupadas: o Rewind não está disponível para sessões com suporte remoto ou enquanto o trabalho ainda está em andamento.

Verificando a reversão

Depois de reverter, você pode usar comandos Git para verificar o estado do seu repositório e confirmar se está de acordo com suas expectativas.

Digitar ! permite executar comandos de shell diretamente do Copilot CLI prompt de entrada, portanto, você não precisa sair da CLI para verificar o estado do repositório.

Para fazer issoInsira este comando
Verifique quais arquivos são mostrados como modificados, preparados ou não rastreados.! git status
Mostrar o SHA e a mensagem do commit atual.! git log --oneline -1
Revise as alterações não preparadas.! git diff

Leitura adicional