[Git] 커밋 삭제하는 방법.

조시현·2023년 12월 31일
1

GitHub & Git

목록 보기
2/4

git을 사용하여 여러 환경에서 commit을 시도할때 의도치 않게 pull을 진행하지 않거나 여러 이류로 commit을 지우고 싶어지는 상황을 발견하였습니다.

github 최근 커밋 삭제하는 법

  1. 커밋 내역을 확인한다.
git log
  1. 가장 최근 커밋을 삭제하는 명령어를 실행
git reset HEAD^
  • HEAD에 ~2를 붙이면 최근 2개의 커밋내역을 삭제해준다.

2-1. 특정 커밋 이후의 커밋을 삭제하는 방법

git reset "commit hash"
ex) git reset 12d213512d1cf3121d1a213addf311
  • "commit hash"에 헤당되는 커밋의 이후의 커밋들이 전부 삭제된다.

*수정 내용까지 취소하고 싶다면 git reset에 --hard라는 옵션을 붙여주면 된다.

  • hard옵션은 커밋과 스테이징, 파일 수정을 하기 전 상태로 작업 트리를 되돌리는 옵션으로, 되돌린 내용을 복구 할 수 없다.

    	git reset --hard 12d213512d1cf3121d1a213addf311
  1. 원격지에서 커밋 내역을 갱신하기.
// origin 내부의 브랜치에서 커밋을 삭제한 경우
git push -f origin "브랜치명"
// 하나의 브랜치만 있을 경우
git push -f 

이러한 과정을 거치면 원격저장소에서도 내역이 깔끔하게 지워진것을 로그를 통해서 확인할 수 있다.

reset옵션

  • --soft
    최근 커밋을 하기 전 상태로 작업 트리를 되돌립니다.
  • --mixed
    최근 커밋과 스테이징을 하기 전 상태로 작업 트리를 되돌립니다.
    옵션 없이 git reset 명령을 사용할 경우 이 옵션을 기본으로 합니다.
  • --hard
    최근 커밋과 스테이징, 파일 수정을 하기 전 상태로 작업 트리를 되돌립니다.
    이 옵션으로 되돌린 작업은 복구할 수 없습니다.
profile
Luck favors the prepared. Chance favors the prepared mind

0개의 댓글