Introduction
Когда вы работаете в интерактивной Второй пилот CLI сессии, вы можете нажать Esc или Ctrl+C , чтобы контролировать, что Copilot происходит. Оба нажатия клавиши могут отменять операции, но работают немного иначе:
- Ctrl+C действует мгновенно, без подтверждения второго нажатия — сначала удаляет все очередные запросы (по одному за нажатие), затем отменяет текущую операцию.
- Одно нажатие клавиши Esc даёт более постепенное, постепенное управление. Во время Copilot активной работы один Esc не отменяется сразу — он показывает напоминание, а второе нажатие выполняет следующий шаг: удаляет последний поставленный в очередь запрос или отменяет операцию, когда ничего не поставлено в очередь.
Если Copilot изменения уже внесены и вы хотите их отменить, вы можете вернуть рабочее пространство к предыдущей точке сессии. Второй пилот CLI делает снимок состояния вашего рабочего пространства каждый раз, когда вы вводите запрос, и это позволяет перемотать назад к более раннему состоянию, дважды нажав Esc , когда Copilot находится в режиме простоя и область ввода пуста.
Что делает прессинг Esc в разных ситуациях
Одно нажатие Esc выполняет разные действия в зависимости от текущего состояния сессии:
| Текущее состояние | Что делает прессинг Esc |
|---|---|
| Copilot активен без очередных подсказок. | Появляется напоминание «Esc снова для отмены». Операция запуска отменяется только если вы снова нажате Esc в течение полсекунды. |
| Copilot активен, и есть очередные запросы. | Появляется напоминание «Esc снова для отмены». Повторное нажатие Esc удаляет последний поставленный в очередь запрос. |
| Открыт диалог разрешения. | Один Esc отказывает в ожидающем запросе (второе нажатие не требуется). |
| Открыт диалог, наложение или picker. | Закрывает диалог, наложение или picker. |
| Copilot бездействует. | Краткое напоминание о том, что если быстро нажать Esc , откроется перемотчик назад. См. Откат изменений. |
Когда использовать Esc вместо Ctrl+C
Главное отличие этих двух способов отмены операции в том, что Esc предназначен для постепенного, целенаправленного вмешательства, а Ctrl+C — жёсткий остановочный режим.
Используйте Esc , когда хотите взаимодействовать, Copilot не обязательно завершая текущую операцию. Например, если появляется диалог с разрешением, и вы хотите отклонить именно этот запрос, нажатие Esc отклоняет диалог и Copilot продолжает работать — просто инструмент, который вы отклонили, не будет использоваться. Аналогично, если вы поставили в очередь последующие запросы и хотите отменить их, не прерывая уже выполненную работу, нажатие Esc удаляет последний поставленный в очередь запрос (повторяйте, чтобы убрать предыдущие), пока текущая операция продолжается.
Используйте Ctrl+C , когда хотите отменить без второго подтверждающего нажатия, которое требуется для Esc . Если очередь на запросы не появляется, один Ctrl+C немедленно отменяет активную операцию. Если у вас есть подсказки в очереди, каждый Ctrl+C удаляет последний поставленный в очередь запрос — один за нажатие — и отменяет активную операцию только после того, как очередь опустела. Запись файлов, которая уже в процессе, завершится — файлы не остаются повреждёнными во время записи — но все оставшиеся запланированные изменения отменяются. Второе нажатие Ctrl+C в течение двух секунд, когда область ввода пуста, полностью завершает сессию.
В качестве эмпирического правила: используйте Esc , когда хотите вмешаться избирательно, и Ctrl+C , когда хотите остановиться и начать заново.
Откат изменений
Пока Copilot он неактивен и в области ввода нет текста, вы можете дважды нажать Esc , чтобы отобразить список точек текущей сессии, к которым можно откатиться. Каждая точка соответствует снимку вашего рабочего пространства, сделанному непосредственно перед Copilot началом работы над заданием, показанным в списке.
Для полной информации о том, как использовать двойное нажатие клавиши Esc для отката изменений, внесённых во время сессии, см. Откат изменений, внесённых во интерфейс командной строки GitHub Copilot время сессии.
Предупреждение
Перемотка восстанавливает всё рабочее пространство в состояние, в котором оно было на выбранном снимке. Это отменяет все изменения, внесённые после этого момента — не только изменения, внесённые Copilot, но и любые ручные правки, а также изменения, вытекающие из команд shell. Любые новые файлы, созданные в рабочем пространстве после снимка, удаляются независимо от их статуса в Git.
Что происходит, когда вы откатываетесь назад
Когда вы выбираете снимок с помощью перемотки назад, выполняются следующие действия:
- Состояние Git восстановлено. Репозиторий проверяется в коммит Git и ветвь, записанные в снимке.
- Неотслеживаемые файлы очищаются. Файлы, которые не существовали на момент снимка, удаляются.
- Модифицированные файлы восстанавливаются. Файлы, изменённые после снимка, возвращаются в резервное состояние, включая разрешения и состояние staging.
- История сессий сокращается. Разговор перематывается назад до того момента, в который был сделан выбранный снимок. Все сообщения и вызовы инструментов, возникшие после этого момента, удаляются из сессии.
- Снимки удаляются. Выбранный снимок и все последующие снимки удаляются навсегда. Для будущих перемоток остаются только снимки из предыдущих этапов разговора.
- Откат подтверждён. После отката Copilot отображается сообщение с указанием количества восстановленных файлов.
- Ваш запрос восстановлен. Подсказка, связанная с выбранным снимком, размещается в области ввода.
Изменения, которые нельзя откатить
Перемотка назад недоступна в следующих ситуациях:
- Файлы более 10 МБ. Отдельные файлы объёмом более 10 МБ пропускаются при создании снимков. Изменения в этих файлах не восстанавливаются при откате.
- Более 500 изменённых файлов. Если за один этап CLI-беседы было изменено более 500 файлов, для этого шага не создаётся снимок. Вы не сможете откатить изменения, внесённые на этом этапе. Ранние снимки остаются неизменными.