Development/Git

Git 이력 되돌리기 (Reset, Revert)

궁선이 2018. 12. 17. 23:24

먼저 간단히 두개를 비교해 보겠습니다.


Reset : 타임머신을 타듯이 과거의 특정 시점으로 돌아간다.

Revert : 과거의 특정 시점의 이력을 없앤다.


1. reset


$ git reset <Option> <Commit>


ex) git reset --hard 96073f3202f32eed26b6579657dffa4abca3fc83


Options

- hard : 돌아간 시점 이후의 모든 커밋이 삭제되고 내용또한 지워집니다.

- soft : 돌아간 시점 이후의 커밋들이 남아있으며, 스테이징(인덱스) 내용 또한 남아있습니다. 바로 다시 커밋이 가능합니다.

- mixed : Default 옵션이며, 돌아간 시점 이후의 커밋들이 남아있지만 스테이징(인덱스) 내용은 삭제됩니다. 다시 스테이징을 해야합니다.


2. revert


$ git revert <Commit>


원격 저장소에 push한 상태라면 미련을 버리고 revert 를 사용한다.

reset을 사용한다면 원격 저장소를 reset 시점의 이전으로 되돌리기 전 까지는 push 할 수 없기 때문.