본문 바로가기

VCS

Git - 3

Git - 3

이전 포스팅:





이전 버전으로 돌아가기 : reset vs revert

1) reset
지난 포스팅에서 진행했던 log에서


원하는 버전의 id를 복사한 뒤, (version 2.0으로 해보겠다)

git reset --hard <id> 명령으로

이후 commit을 취소하고 해당 id의 버전으로 돌아갈 수 있다.


reset 이후 log를 확인해보면 되돌아간 version 2.0 이후의 commit이 사라져있음을 확인할 수 있다.


(디렉토리에서 v2.txt가 사라진 모습)


reset에는 hard 말고도 soft, mixed 등의 옵션이 존재한다.

2) revert :

revert는 reset과 다르게 내역을 삭제하지 않고, 

해당 commit을 취소하면서 새로운 버전을 생성하는 것이다.

쉽게 말해 reset은 타임머신을 타고 시간을 되돌려 이후 사건을 아예 없던 일로 만드는 것이고, 
revert는 해당 사건을 취소하는 새로운 이력을 생성하는 것이다. 


하지만 원격 repository에 이미 push가 진행된 상태라면, reset을 사용해도 local git만 reset될 뿐이므로 revert를 사용한 뒤 conflict를 해결해야 한다.