github 협업하면서 Pull Request 받아서 Merge 한 것과 내가 Commit한 것들 취소해서 특정버전으로 되돌리기

위에서 아래처럼 commit 과 merge를 취소하고 버전을 되돌리기 파란색 선의 변화를 보면 된다. github 버전관리툴을 사용하면서 다른사람들과 협업할 경우, 내가 겪은 이슈들을 한 번 블로깅 해보려고 한다. 공모전을 참가하면서 안드로이드 앱을 하나 만들게 되었다. 총 본인을 포함하여 5명의 개발자들이 협업을 하였다. 개발 파트를 나눠서 진행 하던 도중 한 팀원이 Pull Request를 보냈고, 크게 의심하지 않고 검토 없이 Merge를 했다가 여러 버그들이 발생하는 문제들이 발생했다. 이럴 경우, 유용한 방법을 블로깅 해보려고 한다. git log를 통해 commit과 merge 기록들을 본다. 현재 버전은 Fix Serious Bug step 1이다. 여기서 내가 돌아가고 싶은 버전은... commit 메세지가 잘려서 안뜨는데 요약하자면 3단계 전이다. 먼저 git reset HEAD^ 라는 커맨드를 실행해서 한단계 전으로 돌린다. 다시 log를 찍어보면 Fix Serious Bug Step 1버전이 취소되고 한 단계 이전 버전으로 돌아왔다. 여기서 git reset HEAD~2 라는 커맨드를 실행해서 현재에서 2단계 이전으로 되돌린다. 즉 내가 되돌리기로 원하는 버전으로 간다. 다시 log를 찍어보면 이제 내가 원하는 버전으로 되돌렸다. 그럼 이제 master에 변경사항들을 밀어넣어줄 차례이다. git commit -am "Back to the Merge" 로 커밋을 해주고 git push origin +master 러 강제적으로 밀어 넣어서 커밋과 머지 이전으로 되돌렸다.