main에 잘 못 올렸다고?

Jae·2024년 5월 12일
1

이번에 spring boot 수업이 끝나고 또 한번 프로젝트를 진행했다. 이번에 우리 팀이 하게 되는 작업은 반려동물에 대한 정보를 주고 받는 커뮤니트 홈페이지를 만들기로 했다. 제가 맡은 파트는 카카오맵 API를 받아서 정보를 뿌려주는 작업과 유기동물 API를 불러와서 화면에 보여주는 작업을 진행했다.
항상 그랬지만 프로젝트하면서 배우는게 참 많았다. 모르는 부분을 혼자 찾아보기도 하고 그래도 잘 안되면 팀원들한테 물어보기도 하면서 너무 많이 배웠다. 그 중에 하나 배운 것이 프로젝트 진행 중에 gitHub main branch에 잘 못 올렸을 때 대처방법이다.
보통 main branch를 하나 만들고 그 밑에 frontend, backend 브랜치를 만들어서 frontend와 backend 브랜치에 각각 작업한 기능들을 합치고 최종적으로 main에 frontend와 backend를 합치는 방법을 구사한다.
그래서 main 브랜치 영역은 프로젝트의 최종 본이라고 보면된다.
하지만 프로젝트를 하다보면 실수로 main에 올리는 경우가 있다. 원래는 proteced를 해서 main을 막아놓고 default 브랜치를 backend나 frontend로 해서 이런 사고를 미연에 방지할 수 있다. 저희는 이렇게 될거라는 생각을 못 한 것도 있고 잘 알지 못 했어서 main에 못 올리게하는 장치를 걸지 못 했다.
만약 main에 프로젝트를 실수로 올렸다면 sourcetree를 활용해서 되돌릴 수 있다. sourcetree가 아니여도 할 수 있겠지만 sourcetree는 모든 브랜치들을 직관적으로 볼 수 있고 사용하기 편하다는 장점이 있다. 이 작업을 진행하기 전에 main에 올린 브랜치를 백업해두거나 모르겠으면 파일 전체를 백업해두는 것을 추천한다.
먼저 main에 잘 못 올렸다면 sourcetree로 가서 main으로 체크아웃을 진행한다. main 브랜치로 체크아웃이 되었다면 되돌리고 싶은 시점을 찾는다.

위에 그림 처럼 되돌리고 싶은 위치에 우클릭을 해서 '이 커밋까지 현재 브랜치를 초기화'를 클릭해준다. 그리고 HARD를 체크해서 확인을 눌러주면 main 브랜치가 해당 위치로 돌아간다. 여기서 끝이 아니다.
이렇게 하면 pull에 엄청 많은 숫자의 pull이 생성될 것이다. 이건 절대 받으면 안된다. 그러면 다시 main으로 돌아가는 꼴이 된다. 왜냐하면 지금은 로컬 main을 초기화 한 것이지 원격까지 초기화 한 것이 아니다. 따라서 해당 파일에서 cmd 창을 열어서 'git push -f'를 입력해주면 원격으로 로컬에 있는 main 브랜치가 올라가게 된다. -f는 강제로 올린다는 말이다.
아까 맨 처음에 main으로 체크아웃을 했기때문에 따로 체크아웃을 해줄 필요가 없다.

위에 그림을 보면 main -> main (forced update)로 실행된 것을 볼 수 있다.
이렇게 main을 올리더라도 해결방법이 있으니 당황하지 않아도 된다.

profile
즐겁게 개발

0개의 댓글

관련 채용 정보