reset
실수로 커밋한 경우 이전 상태로 돌아가는 방법이다. 옵션을 값을 이용해서 soft, mixed, hard 모드로 사용한다. 지정된 커밋의 상태로 돌아가기 때문에 가장 최근 커밋한 내역과 지정한 커밋 사이에 진행했던 커밋 히스토리가 삭제된다. reset 수행 이력이 남지 않기 때문에 다수가 협업하는 브랜치나 환경에서 사용하는 것은 권장하지 않는다. 개인 브랜치에서 잘못 커밋한 최근 변경 사항을 취소하는 경우에만 사용하는 것이 좋다.
① soft 모드
HEAD를 지정한 커밋으로 이동 시키면서 커밋 내역만 취소하면서 스테이징 영역과 작업 디렉터리의 변경 사항은 유지된다.
git reset --soft <COMMIT_ID>
② mixed 모드
HEAD를 지정한 커밋으로 이동 시키면서 커밋 내역과 스테이징 영역을 취소한다. 작업 디렉터리의 변경 사항만 유지된다. (Default)
git reset --mixed <COMMIT_ID>
git reset <COMMIT_ID>
③ hard 모드
HEAD를 지정한 커밋으로 이동 시키면서 커밋 내역, 스테이징 및 작업 디렉터리 영역의 데이터를 모두 취소한다. 모든 변경사항이 삭제 되는 방법이다.
git reset --hard <COMMIT_ID>
revert
커밋하기 이전의 상태를 복구하는 방법이다. 지정된 커밋으로 돌아가는 새로운 커밋을 생성한다. 기존 커밋 내역들을 유지한 채 복구한 커밋 내역이 이력에 추가된다. 복구가 필요한 경우 reset을 사용하는 것 보다 더 권장되는 방식이다. 공유해서 사용하고 있는 브랜치에서 실수한 경우 사용하기에 적합하다.
- revert 사용 명령어
git revert <COMMIT_ID>
'CICD > Git' 카테고리의 다른 글
[Git] Branch 전략 (0) | 2025.04.09 |
---|---|
[Git] Merge 전략 (0) | 2025.04.08 |
[Git] Command 정리 (0) | 2025.04.08 |
[Git] Git 기본 개요 (0) | 2025.04.08 |
[Git] SSH 방식으로 복수의 원격 저장소 등록 방법 (1) | 2024.12.18 |