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.
Что происходит, когда вы откатываетесь назад
Когда вы выбираете снимок с помощью перемотки назад, выполняются следующие действия:
-
**Состояние Git восстановлено.** Репозиторий проверяется в коммит Git и ветвь, записанные в снимке. -
**Неотслеживаемые файлы очищаются.** Файлы, которые не существовали на момент снимка, удаляются. -
**Модифицированные файлы восстанавливаются.** Файлы, изменённые после снимка, возвращаются в резервное состояние, включая разрешения и состояние staging. -
**История сессий сокращается.** Разговор перематывается назад до того момента, в который был сделан выбранный снимок. Все сообщения и вызовы инструментов, возникшие после этого момента, удаляются из сессии. -
**Снимки удаляются.** Выбранный снимок и все последующие снимки удаляются навсегда. Для будущих перемоток остаются только снимки из предыдущих этапов разговора. -
**Откат подтверждён.** После отката Copilot отображается сообщение с указанием количества восстановленных файлов. -
**Ваш запрос восстановлен.** Подсказка, связанная с выбранным снимком, размещается в области ввода.
Изменения, которые нельзя откатить
Перемотка назад недоступна в следующих ситуациях:
- Файлы более 10 МБ. Отдельные файлы объёмом более 10 МБ пропускаются при создании снимков. Изменения в этих файлах не восстанавливаются при откате.
- Более 500 изменённых файлов. Если за один этап CLI-беседы было изменено более 500 файлов, для этого шага не создаётся снимок. Вы не сможете откатить изменения, внесённые на этом этапе. Ранние снимки остаются неизменными.