- 이전 커밋의 변경사항을 되돌려야 하는 상황은 꽤 많이 발생한다.
- 에러를 발생시키는 커밋이 있다면, 빠르게 해당 커밋의 변경사항을 되돌려야 한다.
git revert {커밋 ID}
- 다음과 같은 세 개의 커밋이 있는 상황이라고 가정한다.
1 |
|
- 이때
0c0ce19 (a 파일 수정)
커밋이 문제가 있다는 걸 알게 됐다. 0c0ce19
커밋 내용은 이미remote repository
공간에 올라갔다.- 중간에 있는 커밋의 변경사항만 되돌리기 위해선
git reset
은 부족해 보인다. - 이럴 때 사용하는 명령어가
git revert
이다. - 기존 커밋들을 지우지 않고, 현재 커밋 위로 이전 커밋 내용을 다시 되돌리는 커밋을 만든다.
1 |
|
- 이제 로그를 확인하면 다음처럼
0c0ce19
시점 때의 작업물로 되돌아온 것을 확인할 수 있다.
1 |
|
- 이전 커밋을 되돌려야 하는 상황일 때,
rebase --interactive
를 사용하여 커밋 내역을 조작할 수 있다.