Skip to main content
Discard 는 커밋하지 않은 변경을 버리고, Undo/Redo 는 앱에서 방금 한 Git 작업을 되돌립니다.

Discard: 변경 버리기

되돌릴 수 없는 작업이라 항상 확인 모달을 거칩니다.
1

버릴 대상 고르기

워킹 카피 패널에서 파일 행에 마우스를 올리면 나타나는 × 버튼을 누릅니다. 여러 파일을 선택한 상태라면 선택 전체가 대상입니다. 충돌 파일 섹션에는 이 버튼이 없습니다.
2

확인 모달에서 Discard

변경사항을 버리시겠습니까?(Discard changes?) 모달에 버려질 파일이 나열됩니다. 버리기(Discard) 를 눌러야 실행됩니다.
Discard changes? 확인 모달. 버려질 파일 한 개(.github/workflows/release.yml)가 수정(M) 표시와 함께 나열되고, 아래에 Cancel과 빨간 Discard 버튼이 있다
추적 중인 파일은 마지막 커밋 상태로 복원되지만, Untracked(새) 파일은 디스크에서 완전히 삭제됩니다. 이 경우 모달이 되돌릴 수 없다고 경고합니다.
diff에서 변경 구간에 마우스를 올리면 나타나는 Discard 버튼으로 헝크만 버릴 수도 있습니다.
헝크 Discard는 스테이지하지 않은 변경에만 있습니다. 스테이지된 변경은 먼저 Unstage 하세요. 새 파일, 통째로 삭제한 파일, 공백 변경 무시를 켠 동안에는 버튼이 나타나지 않으므로 파일 단위로 버리면 됩니다.

Undo / Redo: 작업 되돌리기

헤더 툴바 왼쪽의 되돌리기(↩)·다시 실행(↪) 버튼을 누릅니다. 마우스를 올리면 어떤 작업을 되돌리는지 툴팁으로 보여줍니다.
헤더 툴바 왼쪽에 되돌리기·다시 실행 아이콘이 있는 전체 화면. 되돌릴 작업이 있어 되돌리기 아이콘은 밝게, 다시 실행 아이콘은 흐리게 표시되고 오른쪽 아래에 작업 완료 토스트가 떠 있다

무엇을 되돌릴 수 있나요

Undo는 ref(브랜치·태그·HEAD)를 바꾸는 작업을 대상으로 합니다.
  • 커밋 · Amend · Squash
  • 병합(merge) · rebase · reset · cherry-pick · revert
  • 체크아웃(checkout)
  • 브랜치 생성 · 삭제 · 이름 변경
  • 태그 생성 · 삭제
  • 스테이지/스테이지 해제, Discard, stash
  • push · pull · fetch 등 원격 동기화
  • 서브모듈 작업, 워크트리 생성·삭제
  • 충돌로 끝난 병합·rebase·cherry-pick·revert (abort·continue로 처리)
커밋·Amend·Squash를 되돌리면 soft reset 이라 변경이 스테이지된 상태로 남습니다. 병합·rebase·cherry-pick·revert를 되돌리면 hard reset 이 실행되며, 커밋되지 않은 변경이 있으면 확인 모달이 먼저 뜨고 진행하면 그 변경은 사라집니다.

알아두면 좋은 동작

  • 되돌리기 스택은 워크트리마다 따로 최대 20개까지 기억합니다.
  • 스택은 메모리에만 있어 앱을 재시작하면 사라집니다.
  • 터미널 등 앱 밖에서 저장소가 바뀌었으면 해당 항목은 폐기되고 알림이 뜹니다.
  • 병합·rebase가 진행 중이면 Undo/Redo가 비활성화됩니다.
스택 밖의 작업은 되돌릴 수 없습니다. 그럴 때는 터미널의 git reflog 가 마지막 수단입니다.