Menu
Coddy logo textTech

브랜치 재설정하기 (Reset)

Coddy Terminal 여정의 버전 관리 섹션에 포함된 레슨 — 58개 중 44번째.

git reset은 현재 브랜치 포인터를 다른 커밋으로 이동시킵니다. 가장 일반적인 용도는 아직 공유하지 않은 최근 커밋을 취소하는 것입니다.

git reset --hard HEAD~1

이 명령은 main을 한 커밋 뒤로 이동시키고, 이에 맞춰 작업 디렉토리를 덮어씁니다. 건너뛴 커밋은 더 이상 브랜치에서 접근할 수 없게 됩니다(Git은 마음이 바뀔 경우를 대비해 잠시 동안 이를 보관하지만, 곧 사라질 것으로 예상해야 합니다).

리셋에는 세 가지 방식이 존재합니다:

  • --soft: 브랜치 포인터를 이동하며, 스테이징된 변경 사항을 유지합니다
  • --mixed (기본값): 포인터를 이동하며, 스테이징을 해제하지만 작업 파일은 유지합니다
  • --hard: 포인터를 이동하며, 작업 파일의 변경 사항도 모두 삭제합니다

--hard는 가장 파괴적인 형태입니다. 로컬 실수를 정리하는 데 유용하지만, 다른 사람들이 이미 풀(pull)한 커밋에는 절대 사용하지 마세요.

challenge icon

챌린지

중급

폴더에 doc.md가 포함되어 있습니다. 저장소를 초기화하고 순서대로 세 개의 커밋을 생성하세요:

  1. Add doc 메시지와 함께 doc.md를 추가합니다.
  2. doc.mdsecond를 추가하고, Second draft 메시지로 커밋합니다.
  3. doc.mdthird를 추가하고, Third draft 메시지로 커밋합니다.

HEAD~2를 사용하여 브랜치를 맨 처음 커밋으로 하드 리셋(Hard-reset)하세요. doc.md의 내용을 출력하세요.

치트 시트

git reset은 현재 브랜치 포인터를 다른 커밋으로 이동시킵니다. 세 가지 방식이 있습니다:

  • --soft: 포인터 이동; 스테이징된 변경 사항 유지
  • --mixed (기본값): 포인터 이동; 스테이징 해제하지만 작업 파일은 유지
  • --hard: 포인터 이동; 작업 파일의 변경 사항을 삭제
git reset --hard HEAD~1  # 마지막 커밋 취소, 변경 사항 삭제
git reset --hard HEAD~2  # 마지막 2개의 커밋 취소

주의: 다른 사람이 이미 가져간(pull) 커밋에 대해서는 절대로 --hard를 사용하지 마세요.

직접 해보기

터미널
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

버전 관리의 모든 레슨