GIT 4 - reset & revert
GIT 4 - reset & revert
reset
현재 버전들을 보면
여기서 최신 버전 Message 3를 삭제하고 , 버전 Message2로 이동하고 싶다면?
git reset을 사용하면 된다. 즉 git reset --hard 버전 커밋 ID
를 사용하면 된다.
여기서 주의해야할점 git reset --hard 2번째 버전으로 했다는 것은, 버전 Message 2를 리셋한다는 개념이 아니라, 버전 Message 2가 되겠다라는 개념이다.
revert
현재 버전 기록들 상태이다.
여기서 R4 버전을 삭제하지 않고, R3 버전으로 가고 싶다면? revert를 사용해야한다. 주의할 점은 reset 같은 경우는 가고자 하는 버전을 적어주었지만, revert는 가고자 하는 버전이 아니라, 전 버전을 적어주어야 한다.
R3 버전으로 가고자, R4 버전의 커밋 ID를 사용했다.
git log
를 보면, 기존의 R4 버전은 사라지지 않고 계속 있다. 즉 R4 버전에서 변화를 취소한것이다. 그래서 R3 버전으로 되어있다. revert는 되돌린다는 개념을 기억하면 될것이다.
결과를 보면,
R4 커밋에서 추가되었던 +R4
가 , R4 커밋을 revert를 시키니까 +R4
를 취소시키고 , 이전 상태인 R3 버전이 된것이다.
여기서 더 과거로 돌아가고 싶다면?
현재 버전 기록은 Message 1 -> Message 2 -> R3 -> R4
되어있는데, Message 1으로 돌아가고 싶다면? 어떻게 해야할까
여기서 오해하는 점은 Message 2를 revert 하면 Message 1으로 간다고 생각하는 점이다. 그렇게 오류가 날것이다. revert [버전]을 하게 되면 그 해당 버전 변화만 취소하기 때문에, R3와 R4 버전은 유실되어 충돌이 일어난다. 그래서 Message 1으로 돌아가고 싶다면, revert R4 revert R3 , revert Message 2를 하게 되면 Message 1이 된다. 역순으로 revert를 반복해야한다는 점이다.