기타/Git

Git - 첫 커밋 삭제(되돌리기)

둉이 2022. 5. 30. 23:55

커밋을 삭제하는 방법에는 여러 가지가 있다.

 

삭제하고자 하는 커밋이 직전 커밋인 경우에는 git reset 명령어로 간단하게 롤백이 가능하다.

# git reset HEAD~1  # 최근 1개의 커밋 삭제 + 변경된 파일은 unstaging 상태로 유지
# git reset HEAD~n  # 최근 n개의 커밋 삭제 + 변경된 파일은 unstaging 상태로 유지

# git reset --hard HEAD~1  # 최근 1개의 커밋 삭제 + 변경된 파일도 함께 되돌림
# git reset --hard HEAD~n  # 최근 n개의 커밋 삭제 + 변경된 파일도 함께 되돌림

# git reset --hard [커밋ID]~n  # 해당 커밋 ID 기준 n개의 커밋 삭제 + 변경된 파일도 함께 되돌림

 

만약 예전에 했던 커밋을 삭제하고자 하는 경우에는 git rebase 명령어를 사용하면 된다.

# git rebase -i HEAD~n  # 직전으로부터 n개의 커밋을 rebase
(위 명령어 실행 후 삭제하고자 하는 커밋의 pick을 drop으로 변경 후 저장하면 삭제 가능)

 

 

하지만 삭제하고자 하는 커밋이 첫 커밋인 경우, 위 두 방법을 이용한 커밋 삭제가 불가능하다.

 

아래와 같이 HEAD가 애매한 인자라는 오류 메시지가 표출되기 때문이다.

이니셜 커밋 삭제 오류

 

 

이니셜 커밋을 삭제하고자 하는 경우에는 다음과 같은 명령어로 삭제가 가능하다.

# git update-ref -d HEAD
# git rm --cached -rf .

 

'기타 > Git' 카테고리의 다른 글

Git - 커밋 메시지에 #이슈번호 추가  (0) 2022.10.31
Github - 레포지토리 복사  (0) 2021.11.02