소프트 스킬 · 중급
git reset, git revert, git restore의 차이점을 설명해주세요.
힌트 · reset은 이력 삭제(--soft/--mixed/--hard), revert는 되돌리는 커밋 추가, restore는 파일 복원을 설명해보세요.
커밋HEAD인덱스작업_트리히스토리
모범답안
세 명령어 모두 변경 사항을 되돌리는 데 사용되지만, 방식에 차이가 있습니다.
git reset은 HEAD가 가리키는 커밋을 변경하여 히스토리를 조작합니다. --soft, --mixed, --hard 옵션에 따라 HEAD, 인덱스, 작업 트리를 초기화하는 범위가 달라집니다. 히스토리를 완전히 삭제할 수 있기 때문에 공개된 브랜치에서는 사용에 주의해야 합니다.
git revert는 특정 커밋의 변경 사항을 취소하는 새로운 커밋을 생성합니다. 히스토리를 변경하지 않고 되돌리기 때문에 안전하게 사용할 수 있습니다.
git restore는 작업 트리의 파일을 특정 시점의 상태로 되돌립니다. 인덱스나 HEAD의 내용을 사용하여 파일을 복원하며, 스테이징 영역이나 작업 디렉토리의 변경 사항을 되돌릴 때 유용합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.