Skip to main content

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

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

Introduction

Когда вы работаете в интерактивной Второй пилот CLI сессии, вы можете нажать Esc или Ctrl+C , чтобы контролировать, что Copilot происходит. Оба нажатия клавиши могут отменять операции, но работают немного иначе:

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

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

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

Одно нажатие Esc выполняет разные действия в зависимости от текущего состояния сессии:

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

Когда использовать Esc вместо Ctrl+C

Главное отличие этих двух способов отмены операции в том, что Esc предназначен для постепенного, целенаправленного вмешательства, а Ctrl+C — жёсткий остановочный режим.

Используйте Esc , когда хотите взаимодействовать, Copilot не обязательно завершая текущую операцию. Например, если появляется диалог с разрешением, и вы хотите отклонить именно этот запрос, нажатие Esc отклоняет диалог и Copilot продолжает работать — просто инструмент, который вы отклонили, не будет использоваться. Аналогично, если вы поставили в очередь последующие запросы и хотите их отменить, не прерывая уже существующую работу, Esc очищает очередь, пока текущая операция продолжается. Нажатие Esc полностью отменяет операцию только если нет открытых диалогов и нет очередных подсказок для очистки первыми.

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

В качестве эмпирического правила: используйте Esc , когда хотите вмешаться избирательно, и Ctrl+C , когда хотите остановиться и начать заново.

Откат изменений

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

Для полной информации о том, как использовать двойное нажатие клавиши Esc для отката изменений, внесённых во время сессии, см. Откат изменений, внесённых во GitHub Copilot CLI время сессии.

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

Перемотка восстанавливает всё рабочее пространство в состояние, в котором оно было на выбранном снимке. Это отменяет все изменения, внесённые после этого момента — не только изменения, внесённые Copilot, но и любые ручные правки, а также изменения, вытекающие из команд shell. Любые новые файлы, созданные в рабочем пространстве после снимка, удаляются независимо от их статуса в Git.

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

Когда вы выбираете снимок с помощью перемотки назад, выполняются следующие действия:

  1.        **Состояние Git восстановлено.** Репозиторий проверяется в коммит Git и ветвь, записанные в снимке.
    
  2.        **Неотслеживаемые файлы очищаются.** Файлы, которые не существовали на момент снимка, удаляются.
    
  3.        **Модифицированные файлы восстанавливаются.** Файлы, изменённые после снимка, возвращаются в резервное состояние, включая разрешения и состояние staging.
    
  4.        **История сессий сокращается.** Разговор перематывается назад до того момента, в который был сделан выбранный снимок. Все сообщения и вызовы инструментов, возникшие после этого момента, удаляются из сессии.
    
  5.        **Снимки удаляются.** Выбранный снимок и все последующие снимки удаляются навсегда. Для будущих перемоток остаются только снимки из предыдущих этапов разговора.
    
  6.        **Откат подтверждён.** После отката Copilot отображается сообщение с указанием количества восстановленных файлов.
    
  7.        **Ваш запрос восстановлен.** Подсказка, связанная с выбранным снимком, размещается в области ввода.
    

Изменения, которые нельзя откатить

Перемотка назад недоступна в следующих ситуациях:

  • Файлы более 10 МБ. Отдельные файлы объёмом более 10 МБ пропускаются при создании снимков. Изменения в этих файлах не восстанавливаются при откате.
  • Более 500 изменённых файлов. Если за один этап CLI-беседы было изменено более 500 файлов, для этого шага не создаётся снимок. Вы не сможете откатить изменения, внесённые на этом этапе. Ранние снимки остаются неизменными.

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