Skip to main content
Skip to content

Отмена операций и откат изменений в GitHub Copilot CLI

Остановите активную Copilot CLI операцию или перемотка сеанса, чтобы отменить изменения в журнале бесед и при необходимости восстановить файлы.

Введение

При работе в интерактивном Copilot CLI сеансе можно остановить работу, которая выполняется или отменить работу, которая уже завершена:

  • Отмена операции с помощью ESC или CTRL+C. Эти ключи ведут себя по-разному в зависимости от того, работает ли Copilot работа, запросы помещаются в очередь или открывается диалоговое окно.
  • Откат завершенной работы путем нажатия клавиши ESC дважды при Copilot простое или с помощью команды косой /undo черты или его /rewind псевдонима.

При откате можно выбрать, следует ли перемотать только беседу или восстановить измененные Copilot файлы.

Rewind работает в любом каталоге, включая папки, которые не являются репозиториями Git. Он восстанавливает только измененные файлы Copilot .

Отмена операции

Используйте esc , если требуется постепенное, целевое управление. Во время Copilot работы первая нажатия отображает напоминание, а второй нажатие прерывает операцию. Одно нажатие также закрывает открытое диалоговое окно или запрещает ожидающий запрос на разрешение.

Используйте Ctrl+C , когда хотите отменить без второго подтверждающего нажатия, которое требуется для Esc . Один ctrl+C немедленно отменяет активную операцию и очищает все запросы в очереди. Запись файлов, которая уже в процессе, завершится — файлы не остаются повреждёнными во время записи — но все оставшиеся запланированные изменения отменяются. Второе нажатие Ctrl+C в течение двух секунд, когда область ввода пуста, полностью завершает сессию.

Что делает прессинг Esc в разных ситуациях

Эффект нажатия клавиши ESC зависит от текущего состояния сеанса.

Текущее состояниеЧто делает прессинг Esc
Copilot активен без очередных подсказок.Отображает напоминание "Esc еще раз для отмены". Нажмите клавишу ESC еще раз в течение половины секунды, чтобы отменить операцию.
Copilot активен и запросы помещаются в очередь.Отображает напоминание об отмене. Нажатие клавиши ESC снова прерывает текущую операцию. В локальном сеансе запросы в очереди обрабатываются в следующем шаге. В удаленном или подключенном сеансе операция полностью отменена и запросы очереди не выполняются в качестве последующей очереди.
Открыт диалог разрешения.Запрещает ожидающий запрос, не требуя второго нажатия.
Открыт диалог, наложение или picker.Закрывает диалог, наложение или picker.
Copilot бездействует.Отображает напоминание о том, что нажатие клавиши ESC снова быстро откроет средство выбора перемотки.

При нажатии клавиши ESC дважды открывается средство выбора перемотки, только если Copilot область ввода пуста. В других ситуациях двойной esc выполняет первое применимое действие в этом порядке:

  1. Отменяет выполняемую команду оболочки.
  2. Останавливает текущий ответ.
  3. Останавливает фоновые агенты.
  4. Очищает текст в области ввода.

Откат назад с двойным нажатием клавиши Esc

Предупреждение

  • Перемотку назад нельзя отменить. После отката история последней сессии удаляется навсегда.
  • Если вы решили восстановить файлы, Copilot восстанавливает только измененные файлы и пропускает любой файл, текущий контент которого больше не соответствует последнему написанию, поэтому ваши последующие изменения не перезаписываются.

Необходимые условия

  • Точка перемотки должна существовать. Нельзя откатиться до первого запроса в сессии.
  • Восстановление файлов доступно только для сеансов, отслеживающих изменения файлов. Если вы возобновляете сеанс, запущенный до включения отслеживания изменений файлов, предлагается только перемотка беседы. Запустите новый сеанс, чтобы иметь возможность восстановить изменения файла.
  • Перемотка недоступна для удаленных сеансов или пока сеанс по-прежнему работает.

Когда Copilot вы закончите отвечать на введённый вами запрос:

  1. Убедитесь, что входная область пуста и не выполняется никаких работ. Если в области ввода есть текст, нажатие клавиши ESC дважды в быстром последовательности очищает текст вместо открытия средства выбора.

  2. Нажмите Esc дважды подряд, чтобы открыть перемотку.

    Picker перечисляет доступные точки перемотки для текущей сессии, с самой последней первой. Десять самых последних точек отображаются одновременно. Если имеется более десяти, используйте клавиши со стрелками ^ и « , чтобы прокрутить их. Для каждой точки перемотки отображается начало введенного запроса, а также то, как давно вы отправили его. Для поворотов измененных файлов также отображается количество добавленных и удаленных строк.

  3. Выберите точку перемотки и нажмите клавишу ВВОД.

    При выборе точки перемотки открывается меню действий, в котором можно выбрать только беседу или беседу**+ файлы**. Последний недоступен для точки перемотки, когда ни один из последующих поворотов не изменил любые файлы, которые можно восстановить. Перед восстановлением отображается предварительный просмотр изменений для каждого файла, Copilot чтобы подтвердить их.

    Примечание.

    Перемотка применяется относительно состояния непосредственно передCopilot началом работы с запросом, а не сразу после завершения работы с запросом.

    Выбранный вами запрос отображается в области ввода, так что вы можете отредактировать и отправить его заново, если потребуется.

Откат назад с помощью команды /undo слэш

/undo Команда слэша и её псевдоним /rewindпредоставляют альтернативный способ открытия перемотки назад.

Обе команды дают одинаковый результат, который вы получаете при дважденном нажатии Esc в режиме Copilot ожидания и в области ввода нет текста.

Что происходит, когда вы откатываетесь назад

Если вы решили перемотить беседу и восстановить файлы:

  1. Copilot восстанавливает файлы, измененные в их состояние до выбранного запроса. Он пропускает файлы, которые вы редактировали после этого.
  2. Беседа перенаводится к выбранной точке. Сообщения и вызовы инструментов после удаления этой точки.
  3. Сохраненные изменения файлов для отмененных поворотов удаляются. Более ранние точки перемотки остаются доступными.
  4. Copilot сообщает, сколько файлов было восстановлено и идентифицирует все пропущенные файлы.
  5. Выбранный запрос помещается в область ввода, чтобы изменить и повторно отправить ее.

Если вы решили перемотка только беседы, ваши файлы остаются неуправляемыми. Журнал последующих сеансов удаляется, и выбранная строка восстанавливается в области ввода.

Изменения, которые не могут быть восстановлены

Восстановление файлов пропускается или недоступно в следующих ситуациях:

  • Файлы размером более 10 МБ: изменения в отдельных файлах размером более 10 МБ не записываются.
  • Более 500 измененных файлов: если один поворот изменяет более 500 файлов, изменения файлов для этого поворота не записываются. Другие повороты не влияют.
  • Файлы, которые вы изменили самостоятельно: если текущее содержимое файла больше не соответствует Copilot последнему написанию, файл остается без изменений.
  • Сеансы без отслеживания файлов: если сеанс начался до включения отслеживания изменений файлов, доступен только перемотка беседы.
  • Удаленные или занятые сеансы: перемотка недоступна для удаленных сеансов или во время работы.

Проверка отката

После отката можно использовать команды Git, чтобы проверить состояние репозитория и подтвердить, что оно соответствует вашим ожиданиям.

Ввод ! позволяет запускать команды shell напрямую из Copilot CLI входной строки, поэтому не нужно выходить из CLI, чтобы проверить состояние репозитория.

Чтобы сделать этоВведите эту команду
Проверьте, какие файлы отображаются как изменённые, постановочные или неотслеживаемые.! git status
Покажите SHA и сообщение коммита текущего коммита.! git log --oneline -1
Пересмотрите неинсценированные изменения.! git diff

Дополнительные материалы