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