Published on

Revert 로 커밋되돌리기

Authors
  • avatar
    Name
    piano cat
    Twitter
내가 커밋한 코드들을 이전으로 되돌리고 싶을때 아래와 같이 명령어를 사용한다.
git commit -m "1번 커밋"
git commit -m "2번 커밋"
git commit -m "3번 커밋"

git revert [1번commit hash]

위처럼 3개의 커밋이력이 있는 상태에서 한개의 커밋을 revert 하게되면 한개의 커밋만 변경된 코드가 이전코드로 되돌아가게 된다.

Revert "1번 커밋"
3번 커밋
2번 커밋
1번 커밋

그리고 커밋메세지가 한개 추가된다.

커밋메세지를 추가하지않고 state 상태로 만들고 싶다면?
git revert --no-commit [커밋 해쉬]

// 이후
git commit -m "어떤 커밋을 왜 리버트했니?"

git push

위처럼 --no-commit 옵션을 사용하여 revert 한 결과를 state에 보관한채로 커밋을 되돌릴수 있다.

여러개의 커밋을 되돌리고 싶다면
git revert [1번커밋해쉬]..[2번커밋해쉬]
git log

Revert "2번커밋해쉬"
Revert "1번커밋해쉬"

이와 같이 작성하면 revert 된 커밋이 여러개 생성된다.

Revert 를 사용하는 이유

커밋을 되돌리는 방법으로 Reset이 있지만 Revert 는 어떤 경우에 사용하는 걸까?

Reset를 사용할경우 커밋이 새로 생기지않아서 변경되었다는 History 를 남기기 어렵다. 그렇기 때문에 Revert를 사용하는 편이 같이 작업하는 동료작업자가 변경된 사항을 알아보기 쉬울수 있다.

참고