Introduction
대화형 코파일럿 CLI 세션에서 작업하는 경우 Esc 또는 Ctrl+C 를 눌러 수행하는 작업을 Copilot 제어할 수 있습니다. 두 키 프레스 모두 작업을 취소할 수 있지만 약간 다르게 작동합니다.
-
Ctrl+C 는 현재 작업을 즉시 중지합니다.
-
단일 Esc 키 프레스를 사용하면 대화 상자를 해제하거나, 대기 중인 프롬프트를 지우거나, 작업을 단계적으로 취소할 수 있는 점진적인 제어를 제공합니다.
Copilot 이미 변경한 내용을 실행 취소하려면 작업 영역을 세션의 이전 지점으로 롤백할 수 있습니다. 코파일럿 CLI는 프롬프트를 입력할 때마다 작업 영역 상태의 스냅샷을 생성하며, 이렇게 하면 유휴 상태이고 입력 영역이 비어 있을 때 <kbd></kbd>Copilot 키를 두 번 눌러 이전 상태로 되감을 수 있습니다.
다른 상황에서 Esc를 누르는 것이 수행하는 일
<kbd>Esc</kbd> 키를 누르면 세션의 현재 상태에 따라 다른 작업이 수행됩니다.
| 현재 상태 | Esc 키를 누르면 무엇이 되는지 | | ------------- | ------------------------ | | Copilot 는 대기 중인 프롬프트 없이 활성 상태입니다. | 실행 중인 작업을 취소합니다. | | Copilot 가 활성 상태이고 대기 중인 프롬프트가 있습니다. | 현재 작업을 중지하지 않고 대기 중인 프롬프트를 지웁니다. | | 대화 상자, 오버레이 또는 선택기가 열려 있습니다. | 대화 상자, 오버레이 또는 선택기를 닫습니다. | | Copilot 가 유휴 상태입니다. | Esc를 빠르게 다시 누르면 되감기 선택기가 열린다는 짧은 알림을 표시합니다. 변경 내용 롤백을 참조하세요. |
Ctrl+C 대신 Esc를 사용하는 경우
작업을 취소하는 이러한 두 가지 방법의 주요 차이점은 Esc 가 점진적이고 타겟팅된 개입을 위해 설계되었으며 Ctrl+C 는 하드 스톱이라는 것입니다.
현재 작업을 종료하지 않고 상호 작용하려는 경우 Copilot를 사용합니다. 예를 들어 사용 권한 대화 상자가 표시되고 특정 요청을 거부하려는 경우 Esc 키를 누르면 대화 상자가 해제되고 Copilot 계속 작동합니다. 거부된 도구는 사용되지 않습니다. 마찬가지로 후속 프롬프트를 큐에 대기하고 이미 진행 중인 작업을 중단하지 않고 취소하려는 경우 현재 작업이 계속 실행되는 동안 Esc 에서 큐를 지웁니다. Esc 키를 누르면 대화 상자가 열리지 않고 큐에 대기 중인 프롬프트가 먼저 지워지지 않은 경우에만 작업이 완전히 취소됩니다.
모든 항목을 한 번에 중지하려면 Ctrl+C 를 사용합니다. 활성 작업을 즉시 취소하고 단일 키 프레스에서 대기 중인 프롬프트를 지웁니다. 이미 진행 중인 모든 파일 쓰기가 완료됩니다. 파일이 손상된 중간 쓰기 상태로 남아 있지는 않지만 나머지 계획된 변경 내용은 중단됩니다. 입력 영역이 비어 있는 경우 2초 이내에 Ctrl+C 를 두 번째로 누르면 세션이 완전히 종료됩니다.
엄지 손가락의 규칙으로, 선택적으로 개입하려는 경우 Esc 를 사용하고, 중지하고 다시 시작하려는 경우 Ctrl+C 를 사용합니다.
변경 내용 되돌리기
비활성 상태이고 입력 영역에 텍스트가 없는 동안 CopilotEsc 키를 두 번 눌러 롤백할 수 있는 현재 세션의 포인트 목록을 표시할 수 있습니다. 각 포인트는 목록에 표시된 프롬프트에서 작업이 시작되기 직전에 Copilot 작업 영역의 스냅샷을 촬영한 것입니다.
이중 Esc 키 프레스를 사용하여 세션 중에 변경한 내용을 롤백하는 방법에 대한 자세한 내용은 GitHub Copilot 명령 줄 인터페이스 (CLI) 세션 중에 변경한 내용을 롤백하기을 참조하세요.
경고
되감기를 수행하면 전체 작업 영역이 선택한 스냅샷의 상태로 복원됩니다. 이렇게 하면 해당 시점 이후에 수행된 모든 변경 내용뿐만 아니라 수동으로 편집한 Copilot내용과 셸 명령으로 인한 변경 내용도 되돌립니다. 스냅샷을 만든 후 작업 영역에서 만든 새 파일은 Git 상태에 관계없이 삭제됩니다.
롤백하면 어떻게 되나요?
되감기 선택기에서 스냅샷을 선택하면 다음 작업이 발생합니다.
-
**Git 상태가 복원됩니다.** 리포지토리는 스냅샷에 기록된 Git 커밋과 브랜치로 체크 아웃됩니다. -
**추적되지 않은 파일이 정리됩니다.** 스냅샷 당시 존재하지 않았던 파일이 제거됩니다. -
**수정된 파일이 복원됩니다.** 스냅샷 이후에 변경된 파일은 권한 및 스테이징 상태를 포함하여 백업된 상태로 되돌아갑니다. -
**세션 기록이 잘립니다.** 대화 내용이 선택한 스냅샷이 생성된 지점으로 되돌아갑니다. 해당 지점 이후에 발생한 모든 메시지 및 도구 호출이 세션에서 제거됩니다. -
**스냅샷이 제거됩니다.** 선택한 스냅샷 및 그 이후의 모든 스냅샷이 영구적으로 삭제됩니다. 이전 대화 단계의 스냅샷만 향후 되감기를 위해 사용할 수 있습니다. -
**롤백이 확인되었습니다.** 롤백 Copilot 후에 복원된 파일 수를 나타내는 메시지를 표시합니다. -
**프롬프트가 복원됩니다.** 선택한 스냅샷과 연결된 프롬프트가 입력 영역에 배치됩니다.
롤백할 수 없는 변경 내용
다음과 같은 상황에서는 되감기를 사용할 수 없습니다.
- 10MB를 넘는 파일 스냅샷을 만드는 동안 10MB보다 큰 개별 파일을 건너뜁니다. 이러한 파일의 변경 내용은 롤백 중에 복원되지 않습니다.
- 500개 이상의 변경된 파일 CLI 대화의 단일 단계에서 500개 이상의 파일이 변경된 경우 해당 단계에 대한 스냅샷이 만들어지지 않습니다. 해당 단계에서 변경한 내용을 롤백할 수 없습니다. 이전 스냅샷은 영향을 받지 않습니다.