Delete
commit
은 삭제하기 위해서 git reset "COMMIT_ID"
명령어을 사용한다.
commit
이 다음과 같은 순서로 이루어 져있을 때
commit3
을 삭제하고 싶다면 commit3
의 이전 버전인 commit2
의 상태로 돌리는 것이다.
git reset "COMMIT_ID"
는 COMMIT_ID
를 삭제하는 것이 아니라COMMIT_ID
로 돌아가는 것이다.
실습을 해보자.
commit
이 다음과 같다. 여기서 New Message
의 commit
을 삭제하고 싶다면,
Message 3
의 상태로 돌아가면 된다.
git reset
명령어를 실행하고, log를 살펴보자.
New Message
의 commit
이 삭제되고, maseter
의 위치가 Message 3
을 가리키고 있는것을 볼 수 있다.
하지만 commit
의 삭제는 신중해야 하기 때문에 git revert
로 좀 더 안정적으로 버전을 관리할 수 있다.
git revert
는 용법은 뒤에 직전의 commit
의 COMMIT_ID
를 적어 준다.
두 명령어의 차이점을 살펴보자
git reset
COMMIT_ID
이후의 commit
을 삭제하고, COMMIT_ID
상태로 돌아간다.git revert
COMMIT_ID
의 commit
을 상태의 새로운, commit
을 생성한다.commit2
와 revert commit3
의 내용은 동일하다.git revert
는 원하는 commit
으로 상태를 돌려 놓은 새로운 commit
을 생성하기 때문에, commit
을 삭제해야 하는 부담스렁운 상황을 피해 갈 수 있다. 다만 다음과 같은 주의 해야 할점이 있다.
출처