본문 바로가기
Trouble

[Git] 첫 번째 커밋 삭제 시 reset 으로 삭제하면 안 되는 이유

by 되고싶은노력가 2024. 8. 17.

# 오류


1. Git Repository 생성 후 push하지 않은 commit을 되돌리고자 reset 명령어 사용

2. —hard, —soft 둘다 명령어가 들지 않음

 

# 이유


처음으로 생성한 커밋을 삭제할 떄 reset 명령어가 들지 않는 이유는 Git의 내부 동작과 브랜치 참조 구조 때문이다.

 

첫 번째 커밋은 루트 커밋이며, 이전 커밋이 없다. 따라서 ‘git reset’은 현재 브랜치의 HEAD를 다른 커밋으로 이동시키는 것으로, 이전 커밋이 없기 때문에 적용할 수 없다.

 

# 해결방법


git update-ref -d HEAD
git rm --cached -r .

 

update-ref란 commit을 가리키는 해시 값을 업데이트 하는 것인데 -d 옵션은 이를 지우는 명령어이다. 따라서 HEAD가 가리키는 해시 값을 지움으로써 첫 커밋을 초기화 시킬 수 있다.

 

# 결과