오늘은 깃허브에 대해서 집중적으로 배웠다.
깃허브에 대해 이론적으로는 설명을 들었지만 실제 팀원들과 사용하려니 어려운 점이 많았다.
일단 Git(깃)이란 VCS Version Control System 관리 시스템 같은 개념으로 이해하였다.
이런 깃을 사용하지 않고 메신저 등으로 서로 교환하며 하게 된다면 작업량이 늘어나고 인력이 늘어날수록 감당이
안될 정도로 복잡해질 것이 분명하다.
그래서 사용하는 것이 이 깃과 깃허브이다.
깃이라는 하나의 저장소 그러니까 협업을 위한 원격 저장소로 다 같이 하나를 관리하며 사용할 경우 위에서 겪는 어려운 점들은 다 커버가 된다.
Commit - 로컬에 저장
Discard - 수정사항 되돌리기
Stash - 수정사항 임시 보관
Pull - 원격 저장소에서 커밋 받아오기
Push - 원격 저장소에 커밋 올리기
위 같은 기능들로 깃을 사용할 수 있는데 branch(브랜치)를 만들어 사용하여 팀원들이 수정사항에 오류가 없을 경우 업데이트하는 main 브랜치를 놔두고 각자 또는 기능에 맞추어 브랜치들을 만들어 작업을 하고 main 브랜치에 서 merge(정보를 보낸다)를 하여 자신의 브랜치에 가져온 뒤에 오류가 없다면은 팀원들에게 알리고 main 브랜치에 marge 하여 main 브랜치를 기준으로 건물을 짓는 것처럼 하나씩같이 쌓아 올리는 것이다.
나는 내가 착각하여 clone을 권한을 받아 내 깃허브 데스크톱에 얻어온 줄 알고 계속해서 작업을 하였으나 다른 팀원들이 main에 marge를 해도 내가 pull을 하여도 정보 갱신이 되지 않기에 이상하게 생각을 하였다.
혼자서 계속 고민을 하다 팀원들에게 물어보아 같이 확인들 해보니 내가 clone을 한 게 아닌 fork를 하여 아예 다른 개념을 가지고 와서 나 혼자 따로 놀고 있었던 것이다.
이후 다시 고쳐서 정상적으로 작동하게 한 뒤에 정상적으로 할 수가 있었다.
이 상황으로 시간을 많이 소비하였지만 fork라는 것에 대해 어떤 것인지 알 수 있는 시간이었고 좋은 기회였다고 생각한다. 그리고 친절히 자신의 문제처럼 도와준 팀원들에게도 너무 감사하다.
이 문제가 해결이 되고 사용법에 차차 익숙해졌으니 내일은 팀원들과 오전 회의를 한 뒤에 사용하지 못했던 기능들을 사용하며 내가 맡은 부분을 완성하여 직접 main 브랜치에 marge를 해보려고 한다.