Git revert는 기존 커밋의 변경을 상쇄하는 새 커밋을 만드는 명령이다. 과거 기록을 지우지 않고 취소 사실을 이력에 남길 수 있다.
Git 작업 흐름 |
|---|
Git · Git 스테이징 영역 · Git 커밋 · Git 브랜치 · Git 병합 |
Git 리베이스 · Git stash · Git 태그 · Git revert · Git bisect |
원리
지정한 커밋이 도입한 패치를 역방향으로 적용해 새 상태를 기록한다. 이후 변경과 겹치면 충돌을 해결해야 할 수 있다.
예시
공유 브랜치에 들어간 오류 수정이 문제를 일으켰다면 원래 커밋을 남긴 채 취소 커밋을 추가하여 되돌린 이유를 기록할 수 있다.
주의할 점
병합 커밋을 취소할 때는 기준 부모의 의미를 이해해야 한다. revert는 현재 파일을 무조건 특정 과거 상태로 만드는 명령과 다르며 결과 테스트가 필요하다.