💡 개발을 진행할때에는 보통 혼자 진행하는 경우보다 팀 단위로 기능별로 파트를 나누어 진행하는 경우가 많다. 이 때 자주 사용하는 툴이 git이다.
형상관리는 어떠한 임무(프로젝트)를 수행할 때 각자 나눠서 맡은 부분을 진행하게 되는데 이 때 각자가 진행한 업무를 하나의 관리 도구에서 버전별로 관리하는것을 말한다. 다른말로는 버전관리 라고도 부른다. 대표적으로 git과 svn이 있다.
장점 | 단점 | |
---|---|---|
SVN | 비교적 직관적 | 충돌확률이 높고 에러 발생 시 수정 및 복구가 어려움 |
GIT | 에러 발생 시 복구가 용이하고, 처리속도가 빠르다. | 직관적이지 못하다. (sourceTree, gitHub Deskltop 같은 툴 이용 시 보다 쉽게 사용 가능) |
커밋이란 작업한 내용을 로컬저장소에 저장하는 것을 의미한다. 이 떄 작업한 내용, 변경사항에 대한 내용을 간략하게 남길 수 있다.(ex. 회원가입 로직 수정, 로그인 기능 개발..). 커밋 할 때 커밋단위는 프로젝트 혹은 팀마다 다를 수 있다. 기능별로 커밋하는 것을 선호!
커밋한 내용이 담겨있는 로컬저장소에서 원격저장소로 올리는 과정이다. SVN은 해당 커밋과 푸시과정이 하나로 통합되어 있다.
Push와는 반대로 원격저장소에 있는 내용을 가져와서 로컬저장소에 저장하는 과정이다.
앞서 많이 언급된 로컬저장소와 원격저장소가 존재한다. 로컬저장소는 내 pc의 개인 저장소 이고, 원격 저장소에는 공동 작업하는 개발자들이 보고 접근 가능한 저장소이다.
가지라는 뜻으로 목적에 맞게 분기를 하여 작업을 진행한다. 주축이 되는 브랜치를 Master Branch라고 부르며 해당 마스터 브랜치에서 다른 브랜치를 생성하여 작업 후 다시 기존 마스터 브랜치로 merge하게 된다.
분기로 나뉘어진 브랜치중 하나의 브랜치를 다른 브랜치와 합하는 과정이다. 이 때 한 파일을 서로 다르게 수정한 경우 충돌이 일어난다.
깃은 공부할게 매우 많은 부분이다. 지속적으로 공부 후 추후에 포스팅 하겠습니다.