커밋을 잘못했을 때 확인하고, 취소(삭제)하는 방법
내가 뭘 잘못했는지, 돌아갈 지점이 어디인지 확인.
git log --oneline
--oneline: 복잡한 정보 빼고 "커밋ID + 메시지"만 한 줄로 깔끔하게 보여줍니다.[출력 예시]
a1b2c3d (HEAD -> main) 실수로 비밀번호 올림 <-- 방금 한 실수 (삭제하고 싶음)
e5f6g7h 기능 A 구현 완료 <-- 여기로 돌아가고 싶음
i9j0k1l 초기 세팅
상황에 따라 두 가지 방법 중 하나를 골라 쓰면 됨.
reset을 씁니다.파일은 살려두기 (추천): "커밋만 취소하고, 작성한 코드는 수정해서 다시 쓰고 싶어."
git reset --soft HEAD~1
HEAD~1: 현재(HEAD)에서 1칸 뒤로 가겠다.--soft: 커밋 기록은 지우지만, 파일 내용은 지우지 않고 장바구니(Staging) 상태로 둠. (오타 수정 후 다시 커밋할 때 사용)완전 삭제 (주의⚠️): "그냥 방금 짠 코드 꼴도 보기 싫어. 싹 다 날려줘."
git reset --hard HEAD~1
--hard: 커밋 기록도 지우고, 작성했던 코드 파일도 깨끗하게 지워버림. (복구 불가능하니 주의!)이미 push를 해서 팀원들도 볼 수 있는 상태라면, reset으로 몰래 기록을 지우면 족보가 꼬여서 큰일 남.
이때는 "실수를 인정하는 새로운 커밋"을 덮어씌워서 해결.
revert라고 함.# 1. 취소하고 싶은 커밋 ID를 확인 (git log --oneline)
# 예: a1b2c3d
# 2. 해당 커밋의 정반대 행동을 하는 커밋 생성
git revert a1b2c3d
:wq) 됨.git push origin [브랜치명] 하시면 됩니다.git log --onelinegit reset --soft HEAD~1 (코드 살림)git revert [커밋ID] (취소 커밋 생성)