Skip to main content

GitHub Copilot CLI 작업을 취소하고 변경 사항을 되돌리기

활성 Copilot 작업을 취소하는 다양한 방법과 결과가 예상과 다른 경우 세션 중에 변경한 내용을 롤백하는 방법을 알아봅니다.

Introduction

대화형 Copilot CLI 세션에서 작업하는 경우 Esc 또는 Ctrl+C 를 눌러 수행하는 작업을 Copilot 제어할 수 있습니다. 두 키 프레스 모두 작업을 취소할 수 있지만 약간 다르게 작동합니다.

  • Ctrl 키+C 는 두 번째 누름을 확인하지 않고 즉시 작동합니다. 즉, 대기 중인 프롬프트를 먼저 제거한 다음(프레스당 하나씩) 현재 작업을 취소합니다.
  • 단일 Esc 키 프레스를 사용하면 단계적 제어를 더 점진적으로 수행할 수 있습니다. Copilot가 현재 작업 중일 때는 Esc를 한 번 눌러도 바로 취소되지 않고 안내 메시지가 표시되며, 두 번째로 누르면 다음 단계가 실행됩니다. 즉, 가장 최근에 대기열에 추가된 프롬프트를 제거하거나, 대기열에 남아 있는 항목이 없으면 작업을 취소합니다.

Copilot 이미 변경한 내용을 실행 취소하려면 세션의 이전 지점으로 롤백할 수 있습니다. 작동 Copilot 하면서 Copilot CLI 각 프롬프트에 응답할 때 파일 변경 내용을 추적합니다. 이렇게 하면 유휴 상태이고 입력 영역이 비어 있을 때 CopilotEsc 키를 두 번 눌러 이전 지점으로 되감을 수 있습니다. 되감으면 대화만 되감을지 또는 변경된 파일을 Copilot 복원할지 여부를 선택합니다.

다른 상황에서 Esc를 누르는 것이 수행하는 일

Esc 키를 누르면 세션의 현재 상태에 따라 다른 작업이 수행됩니다.

| 현재 상태 | Esc 키를 누르면 무엇이 되는지 | | ------------- | --------------------------------- | | Copilot 는 대기 중인 프롬프트 없이 활성 상태입니다. | "다시 Esc를 눌러 취소"라는 알림을 표시합니다. 실행 중인 작업은 Esc 키를 다시 1초 이내에 다시 누르는 경우에만 취소됩니다. | | Copilot 가 활성 상태이고 대기 중인 프롬프트가 있습니다. | "취소하려면 Esc 키를 다시 누르세요"라는 미리 알림을 표시합니다. Esc 키를 다시 누르면 가장 최근에 대기한 프롬프트가 제거됩니다. | | 권한 대화 상자가 열려 있습니다. | 단일 Esc 가 보류 중인 요청을 거부합니다(두 번째 누르기 필요 없음). | | 대화 상자, 오버레이 또는 선택기가 열려 있습니다. | 대화 상자, 오버레이 또는 선택기를 닫습니다. | | Copilot 가 유휴 상태입니다. | Esc를 빠르게 다시 누르면 되감기 선택기가 열린다는 짧은 알림을 표시합니다. 변경 내용 롤백을 참조하세요. |

유휴 상태일 때 CopilotEsc 키를 두 번 빠르게 누르면 세션의 이전 지점으로 롤백할 수 있습니다. 작업이 진행 중인 경우 double Esc 는 이 우선 순위 순서로 다음 중 하나를 수행합니다.

  • 실행 중인 셸 명령을 취소합니다.
  • 현재 응답을 중지합니다.
  • 백그라운드 에이전트를 중지합니다.
  • 입력 영역의 텍스트를 지웁니다.
  • 셸 모드를 종료합니다.

이러한 항목이 적용되지 않으면 되감기 선택기가 표시됩니다.

Ctrl+C 대신 Esc를 사용하는 경우

작업을 취소하는 이러한 두 가지 방법의 주요 차이점은 Esc 가 점진적이고 타겟팅된 개입을 위해 설계되었으며 Ctrl+C 는 하드 스톱이라는 것입니다.

현재 작업을 종료하지 않고 상호 작용하려는 경우 Copilot를 사용합니다. 예를 들어 사용 권한 대화 상자가 표시되고 특정 요청을 거부하려는 경우 Esc 키를 누르면 대화 상자가 해제되고 Copilot 계속 작동합니다. 거부된 도구는 사용되지 않습니다. 마찬가지로, 후속 프롬프트를 큐에 대기하고 이미 진행 중인 작업을 중단하지 않고 취소하려는 경우 Esc 를 누르면 현재 작업이 계속 실행되는 동안 가장 최근에 대기 중인 프롬프트(이전 프롬프트를 제거하려면 반복)가 제거됩니다.

Esc에 필요한 두 번째 누름을 확인하지 않고 취소하려면 +C를 사용합니다. 대기 중인 프롬프트가 없으면 단일 Ctrl+C 가 활성 작업을 즉시 취소합니다. 큐에 대기 중인 프롬프트가 있는 경우 각 Ctrl+C 는 가장 최근에 큐에 대기 중인 프롬프트(프레스당 하나씩)를 제거하고 큐가 비어 있는 경우에만 활성 작업을 취소합니다. 이미 진행 중인 모든 파일 쓰기가 완료됩니다. 파일이 손상된 중간 쓰기 상태로 남아 있지는 않지만 나머지 계획된 변경 내용은 중단됩니다. 입력 영역이 비어 있는 경우 2초 이내에 Ctrl+C 를 두 번째로 누르면 세션이 완전히 종료됩니다.

엄지 손가락의 규칙으로, 선택적으로 개입하려는 경우 Esc 를 사용하고, 중지하고 다시 시작하려는 경우 Ctrl+C 를 사용합니다.

변경 내용 되돌리기

비활성 상태이고 입력 영역에 텍스트가 없는 동안 CopilotEsc 키를 두 번 눌러 롤백할 수 있는 현재 세션의 포인트 목록을 표시할 수 있습니다. 각 지점은 제출한 프롬프트에 해당하며, 되감기를 하면 해당 프롬프트에서 작업을 시작하기 직전에 Copilot 있던 상태로 세션을 되돌립니다.

되감기를 선택한 후 다음을 수행할지 여부를 결정합니다.

  • 대화만 되감고 파일을 그대로 둡니다.
  • 대화를 되감고 파일을 복원합니다. 이 파일은 나중에 편집한 내용을 그대로 유지하면서 변경된 파일을 Copilot 되돌립니다.

전체 작업 영역이 아닌 변경된 파일 Copilot 만 복원하므로 되감기 기능은 Git 리포지토리가 아닌 폴더를 포함하여 모든 디렉터리에서 작동합니다.

이중 Esc 키 프레스를 사용하여 세션 중에 변경한 내용을 롤백하는 방법에 대한 자세한 내용은 GitHub Copilot CLI 세션 중에 변경한 내용을 롤백하기을 참조하세요.

경고

되감기를 수행하면 전체 작업 영역이 선택한 스냅샷의 상태로 복원됩니다. 이렇게 하면 해당 시점 이후에 수행된 모든 변경 내용뿐만 아니라 수동으로 편집한 Copilot내용과 셸 명령으로 인한 변경 내용도 되돌립니다. 스냅샷을 만든 후 작업 영역에서 만든 새 파일은 Git 상태에 관계없이 삭제됩니다.

롤백하면 어떻게 되나요?

롤백할 때 발생하는 작업은 선택한 옵션에 따라 달라집니다.

대화를 되감 파일을 복원하도록 선택한 경우:

  1. 파일이 복원됩니다. 변경된 파일 Copilot 은 선택한 프롬프트 이전의 상태로 되돌아갑니다. 현재 내용이 마지막으로 작성한 내용과 더 이상 일치하지 Copilot 않는 파일(예: 직접 편집했기 때문에)은 건너뛰므로 나중에 편집한 내용을 덮어쓰지 않습니다.
  2. 세션 기록이 잘립니다. 대화가 선택한 지점으로 되감습니다. 해당 지점 이후에 발생한 모든 메시지 및 도구 호출이 세션에서 제거됩니다.
  3. 사용되지 않는 스냅샷이 제거됩니다. 삭제된 턴에 대한 캡처된 파일 변경 내용이 정리됩니다. 이전 지점은 향후 되감기를 위해 계속 사용할 수 있습니다.
  4. 롤백이 확인되었습니다. 롤백 Copilot 후 복원된 파일 수를 나타내는 메시지를 표시하고 건너뛴 모든 파일을 기록합니다.
  5. 프롬프트가 복원됩니다. 선택한 지점과 연결된 프롬프트가 입력 영역에 배치되므로 편집하고 다시 제출할 수 있습니다.

대화만 되감기로 선택한 경우 파일은 그대로 유지됩니다. 세션 기록이 잘리고(2단계) 프롬프트가 입력 영역(5단계)으로 복원됩니다.

롤백할 수 없는 변경 내용

다음과 같은 상황에서 파일 복원을 건너뛰거나 사용할 수 없습니다.

  • 10MB를 넘는 파일 캡처하는 동안 10MB보다 큰 개별 파일을 건너뛰므로 롤백 중에 해당 파일에 대한 변경 내용은 복원되지 않습니다.
  • 500개 이상의 변경된 파일 한 턴 동안 500개 이상의 파일이 변경된 경우 해당 턴에 대한 파일 변경 내용이 캡처되지 않으므로 파일을 복원할 수 없습니다. 다른 회전은 영향을 받지 않습니다.
  • 직접 변경한 파일입니다. 현재 내용이 마지막으로 쓴 내용과 더 이상 일치하지 Copilot 않는 파일은 덮어쓰기 대신 그대로 유지됩니다.
  • 파일 추적이 없는 세션입니다. 파일 변경 추적을 사용하도록 설정하기 전에 시작된 세션을 다시 시작하면 대화 되감기만 사용할 수 있습니다. 파일 변경 내용을 복원할 수 있도록 새 세션을 시작합니다.
  • 원격 지원 또는 사용 중인 세션입니다. 원격 지원 세션에서는 되감기를 사용할 수 없거나 세션이 계속 진행 중인 동안에는 되감기를 사용할 수 없습니다.

추가 읽기