git reset revert

Seokki Oh·2022년 2월 12일
0

reset과 revert의 차이

git reset은 해당 커밋으로 갈 때에 이전의 변경된 사항 모두를 폐기하고 돌아가게 된다
예를 들어 git reset --hard HEAD~1을 실행하면 현재 커밋의 모든 변경사항을 폐기하고 1개 전 커밋상태로 돌아가게 되는 것이다

revert의 경우에는 돌아갈 커밋을 지정할 때 그 커밋의 변경점을 다시 취소해서 원래로 돌아가는 새로운 커밋 한 개를 만들게 된다
그렇기 때문에 같은 결과더라도 현재 커밋은 살아 있어 현재의 커밋도 참조를 이어갈 수 있게 된다

더욱 revert가 필요한 이유 2가지

  1. 커밋들을 살려야 하는 경우
    하나는 HEAD~1 즉 1개 뒤로가 아니라 몇개의 커밋 뒤로 가려고 할 때, 예를들어 4개전의 커밋이라고 하겠다
    하지만 1~3개 전 커밋은 유효하기 때문에 두어야 할 경우, reset은 1~3전체의 변경사항을 폐기하고 돌아가게 되지만 revert를 이용한다면 4개 전의 커밋에서 변경했던 부분만 바꿔 버리고, 새롭게 커밋을 하기 때문에 1~3의 변경사항은 살릴 수가 있다
    그 사이에 충돌은 일어날 수 있으니 해결해줘야 한다
  2. 협업할 때
    협업할 때 이미 어느 개발자가 push하여 공유된 commit을 pull받고 reset을 사용하고 작업을 할 경우에 다음 merge시에 심각한 충돌을 일으킬 수 있다
profile
Frontend Developer

0개의 댓글