Skip to main content
Skip to content

GitHub Copilot CLI에서 작업 중단 및 변경 내용 롤백

활성 Copilot CLI 작업을 중지하거나 세션을 되감아 대화 기록의 변경 내용을 실행 취소하고 필요에 따라 파일을 복원합니다.

소개

대화형 Copilot CLI 세션에서 작업하는 경우 진행 중인 작업을 중지하거나 이미 완료된 작업을 실행 취소할 수 있습니다.

  • 작업을 취소하려면 Esc 또는 +C를 사용합니다. 이러한 키는 Copilot가 작동 중인지, 프롬프트가 큐에 대기 중인지, 대화 상자가 열려 있는지에 따라 다르게 동작합니다.
  • Copilot하려면 /rewind가 유휴 상태일 때 Esc 키를 두 번 누르거나 /undo 슬래시 명령 또는 해당 **** 별칭을 사용합니다.

롤백할 때 대화만 되감을지 또는 Copilot가 변경한 파일도 복원할지 선택할 수 있습니다.

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

작업 취소 중

점진적이고 세밀한 제어를 원하는 경우 Esc를 사용합니다. Copilot가 작동하는 동안 첫 번째 키를 누르면 미리 알림이 표시되고 두 번째 키를 누르면 작업이 중단됩니다. 한 번 누르면 열려 있는 대화 상자를 닫거나 보류 중인 권한 요청을 거부합니다.

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

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

Esc 키를 누르는 효과는 세션의 현재 상태에 따라 달라집니다.

| 현재 상태 | Esc 키를 누르면 무엇이 되는지 | | ------------- | --------------------------------- | | Copilot 는 대기 중인 프롬프트 없이 활성 상태입니다. | "취소하려면 Esc 키를 다시 누르세요" 안내 메시지를 표시합니다. 작업을 취소하려면 Esc 키를 다시 0.5초 이내에 누릅니다. | | Copilot 가 활성 상태이고 프롬프트가 대기열에 추가됩니다. | 취소 미리 알림을 표시합니다. Esc 키를 다시 누르면 현재 작업이 중단됩니다. 로컬 세션에서 대기 중인 프롬프트는 다음 턴으로 처리됩니다. 원격 지원 또는 연결된 세션에서 작업이 완전히 취소되고 대기 중인 프롬프트가 후속 턴으로 실행되지 않습니다. | | 권한 대화 상자가 열려 있습니다. | 두 번 누를 필요 없이 보류 중인 요청을 거부합니다. | | 대화 상자, 오버레이 또는 선택기가 열려 있습니다. | 대화 상자, 오버레이 또는 선택기를 닫습니다. | | Copilot 가 유휴 상태입니다. | Esc를 다시 빠르게 누르면 되감기 선택기가 열린다는 알림이 표시됩니다. |

Esc를 두 번 빠르게 누르면 Copilot가 유휴 상태이고 입력 영역이 비어 있는 경우에만 되감기 선택기가 열립니다. 다른 상황에서는 Esc를 두 번 누르면 다음 순서로 적용 가능한 첫 번째 작업을 수행합니다.

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

Esc 키를 두 번 눌러 롤백

경고

  • 되감기 취소할 수 없습니다. 롤백하면 이후 세션 기록이 영구적으로 제거됩니다.
  • 파일을 복원하도록 선택한 경우 Copilot는 자신이 변경한 파일만 복원하고, 현재 내용이 마지막으로 쓴 내용과 더 이상 일치하지 않는 파일은 건너뛰므로 나중에 직접 편집한 내용이 덮어써지지 않습니다.

사전 요구 사항

  • 되감기 지점이 있어야 합니다. 세션에서 첫 번째 프롬프트 전에 롤백할 수 없습니다.
  • 파일 복원은 파일 변경 내용을 추적한 세션에만 사용할 수 있습니다. 파일 변경 추적을 사용하도록 설정하기 전에 시작된 세션을 다시 시작하면 대화 되감기만 제공됩니다. 파일 변경 내용을 복원하려면 새 세션을 시작하세요.
  • 원격 백엔드 기반 세션에서는 되감기를 사용할 수 없거나 세션에 아직 진행 중인 작업이 있는 동안에는 사용할 수 없습니다.

Copilot 입력한 프롬프트에 응답이 완료되면 다음을 수행합니다.

  1. 입력 영역이 비어 있고 진행 중인 작업이 없는지 확인합니다. 입력 영역에 텍스트가 있는 경우 Esc 키를 두 번 연속해서 누르면 선택기를 여는 대신 텍스트가 지워집니다.

  2. Esc 키를 두 번 연속해서 눌러 되감기 선택기를 엽니다.

    선택기에는 현재 세션에 사용 가능한 되감기 지점이 가장 최근 항목부터 표시됩니다. 가장 최근 10개 지점이 한 번에 표시됩니다. 10개가 넘는 경우 항목을 스크롤하려면 ↑ 및 ↓ 화살표 키를 사용합니다. 각 되감기 지점에 대해 입력한 프롬프트의 시작 부분과 제출한 지 얼마나 되었는지가 표시됩니다. 변경된 파일의 경우 해당 턴에 의해 추가 및 제거된 줄 수도 표시됩니다.

  3. 되감기 지점을 선택하고 Enter 키를 누릅니다.

    되감기 지점을 선택하면 대화만 또는 대화 + 파일을 선택할 수 있는 작업 메뉴가 열립니다. 후자는 해당 턴과 그 이후 어떤 턴에서도 복원 가능한 파일이 변경되지 않은 경우 되감기 지점으로 사용할 수 없습니다. 복원하기 전에 Copilot가 확인할 수 있도록 변경 내용의 파일별 미리 보기를 표시합니다.

    참고

    되감기는 프롬프트에서 작업을 시작하기 직전Copilot 상태를 기준으로 적용되며, 프롬프트 작업을 마친 직후가 아닙니다.

    선택한 프롬프트가 입력 영역에 표시되므로 필요한 경우 편집하고 다시 제출할 수 있습니다.

/undo 슬래시 명령어로 롤백하기

슬래시 명령 /undo과 그 별칭 /rewind은 되감기 선택기를 여는 또 다른 방법을 제공합니다.

두 명령 모두 유휴 상태이고 입력 영역에 텍스트가 없을 때 Copilot 키를 두 번 눌러 얻는 것과 동일한 결과를 생성합니다.

롤백하면 어떻게 되나요?

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

  1. Copilot가 변경한 파일을 선택한 프롬프트 이전 상태로 복원합니다. 그 후에 편집한 파일은 건너뜁니다.
  2. 대화가 선택한 시점으로 되감깁니다. 해당 지점 이후에 메시지 및 도구 호출이 제거됩니다.
  3. 폐기된 턴에 대한 캡처된 파일 변경 내용이 제거됩니다. 이전 되감기 지점은 계속 사용할 수 있습니다.
  4. Copilot 는 복원된 파일 수를 보고하고 건너뛴 파일을 식별합니다.
  5. 선택한 프롬프트가 입력 영역에 배치되므로 편집하고 다시 제출할 수 있습니다.

대화만 되감기를 선택하면 파일은 그대로 유지됩니다. 이후의 세션 기록이 제거되고 선택한 프롬프트가 입력 영역으로 복원됩니다.

복원할 수 없는 변경 내용

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

  • 10MB를 초과하는 파일: 10MB보다 큰 개별 파일에 대한 변경 내용은 캡처되지 않습니다.
  • 500개 이상의 변경된 파일: 단일 턴이 500개 이상의 파일을 변경하는 경우 해당 턴에 대한 파일 변경 내용은 캡처되지 않습니다. 다른 회전은 영향을 받지 않습니다.
  • 직접 변경한 파일: 파일의 현재 내용이 Copilot가 마지막으로 쓴 내용과 더 이상 일치하지 않으면 파일은 그대로 유지됩니다.
  • 파일 추적이 없는 세션: 파일 변경 추적을 사용하도록 설정하기 전에 세션을 시작한 경우 대화 되감기만 사용할 수 있습니다.
  • 원격 기반 또는 사용 중인 세션: 원격 기반 세션이거나 작업이 아직 진행 중인 동안에는 되감기 작업을 사용할 수 없습니다.

롤백 확인

롤백한 후 Git 명령을 사용하여 리포지토리의 상태를 확인하고 예상과 일치하는지 확인할 수 있습니다.

입력을 ! 사용하면 입력 프롬프트에서 Copilot CLI 직접 셸 명령을 실행할 수 있으므로 리포지토리 상태를 확인하기 위해 CLI를 종료할 필요가 없습니다.

작업이 명령을 입력합니다.
수정, 스테이징 또는 추적 해제로 표시되는 파일을 확인합니다.! git status
현재 커밋의 SHA 및 커밋 메시지를 표시합니다.! git log --oneline -1
단계에 올리지 않은 변경 내용을 검토하세요.! git diff

추가 읽기