어느날 한 개발자는 git을 사용하다 작성한 코드를 날려먹고 공부를 결심한다!
내 얘기 아님.
개발을 하다보면 정신 못차리고 이상하게 코드를 작성할 때가 있다.
또한 정신 못차리고 작성한 코드를 커밋 날릴 수도 있다.
그 커밋을 되돌려야 할 때도 있을 것이다.
그럴 때 사용하는 것이 reset과 revert!
특정 커밋으로 되돌아가면서 해당 커밋 이후의 커밋들은 모두 삭제된다.
즉, 과거의 이력이 커밋에 안남고 깔끔히 돌아간다.
reset 후 원격 저장소에 push 하면 에러(삭제했기 때문에 커밋 히스토리 달라서) -> --force 사용
다음 3가지의 option을 사용할 수 있다.
사용 방법
git reset --options c1
c1 -> c2 -> c3 -> c4 커밋 존재하고 c1 상태로 가고 싶으면 위와 같이 사용한다.
옵션은 --mixed 사용한 뒤 살릴거 살리고 날릴거 날리는게 마음 편할 것 같다.
특정 커밋을 삭제하진 않고 없던일로 만드는 새로운 커밋이 생성된다.
즉, revert 한 이력이 커밋에 남게 된다.
과거 커밋 삭제 없이 새로운 커밋을 만들기 때문에 커밋 히스토리 같아서 원격 저장소에 push해도 충돌 X
사용 방법
git revert c4 git revert c3 git revert c2
c1 -> c2 -> c3 -> c4 커밋 존재하고 c1 상태로 가고 싶으면 위와 같이 사용한다.
역순으로 하나 씩 revert 수행하는 것임.
되돌아간 이력이 남는 revert는 협업 시 권장 된다.
솔플 시에는 reset 사용해도 된다. 깔끔하게 날아가서 기분 좋다.