Git

[Git] git revert - push한 commit 취소하기

Rayi 2024. 12. 27. 11:01

만약 로컬저장소에서 작업한 commit을 원격 저장소에 push 해 놓았는데, 이를 다시 되돌리려고 한다면 git revert를 사용하면 됩니다.

git revert [commit id]

단, 이를 사용하면 commit된 사항이 취소되는 것이 아니라,

 

commit한 사항을 다시 되돌렸다는 commit이 추가되는 방식입니다.

// 두 번째 줄의 commit을 다시되돌렸다는 commit이 추가됩니다.
(HEAD -> master) Revert "wrong commit"
(origin/master) wrong commit

만약 연속된 여러 개의 commit을 취소하려고 한다면, 다음과 같이 사용하면 됩니다.

git revert [첫 commit 바로 이전의 commit id]..[끝 commit id]

이후에는 원격 저장소에도 push를 해주어야 합니다.

git push

git reset을 사용하지 않는 이유

git reset은 브랜치가 가리키는 commit을 이동할 수 있는 명령어 입니다.

 

만약 로컬 저장소에서만 작업한다면, git reset을 사용하여 잘못된 commit 이전의 commit으로 이동하면 됩니다.

 

하지만 이를 원격 저장소에서도 추적하고 있다면, git reset을 통해 되돌린 상태의 브랜치를 원격 브랜치에 merge(push) 할 수 없습니다.

 

때문에, git revert로 새로운 commit을 추가한 뒤 이를 원격 브랜치와 merge해야 합니다.

728x90