reset -> 옛날 commit으로 branch 되돌리기.
좋아요 버튼과 싫어요 버튼 기능을 만드는 중에 요구사항이 변경되었다. 싫어요 버튼은 빼고 좋아요 버튼까지만 만들어야 한다. 다행히 좋아요 버튼을 다 만들었고 commit까지 했다.
돌아갈 commit에서 오른쪽 버튼 클릭 -> master를 이 커밋으로 초기화 클릭
HARD 옵션으로 로컬 작업물을 지우고 master를 뒤 시점으로 되돌린다.
로컬에 있는 master는 제대로 reset이 되었지만 원격에 있는 master는 아직 적용이 안되었다.
push로 이력을 고쳐야 하는데 push를 누르면 이미 push 했던 이력을 고치는 push 이기 때문에 오류가 난다.
force push 강력 푸쉬가 필요하다.
force push -> 이미 원격 저장소에 적용한 commit들을 수정할 때 사용 (혼자 사용하는 branch 에서 사용)
MAC사용자는 소스트리 설정 -> 고급 -> 강제 푸시를 허용 체크 (소스트리 최신버전 한국어 설정시 오류있음 언어 영어로 바꾸고 설정 고급 강제푸시 허용 체크박스 체크 후 푸시 강제푸시 체크)
reset 옵션
HARD reset - 이후에 변경사항이 있어도 없어도 전부 날려버리고 옛날 버전으로 commit reset
MIXED reset - 버전을 reset 하긴 하지만 그 후에 변경사항들은 로컬에 저장만 해 줌 reset 해도 남기고 싶은 파일들은 stage 아래에 남겨 두겠다.
revert -> 방금 만든 commit을 revert하는 새로운 commit 생성
master에 잘못된 커밋을 올렸다. reset하고 force push하면 다른 사람들 히스토리에 영향을 준다. revert하는 커밋을 새로 만들자
reset -> 히스토리 완전 초기화
revert -> 히스토리 새로 쌓아가며 변경
master branch에 잘못된 commit을 했을 때 HARD reset 을 하고 force push를 하게 되면 master는 모든 사람이 보고있는 branch이기 때문에 다른 사람들이 수정 중이라면 conflict가 발생한다.
이력을 수정하기보다 새로운 이력을 만들면서 잘못된 commit을 날려버린다.
지금 master branch에 필요한 commit은 버그 수정한 commit이다.
cherry pick 하고 싶은 master branch에 떼어 붙이고 싶은 commit에서 우클릭 후 cherry pick하기