팀 프로젝트를 진행하게 되면 이제 팀원들과 같이 깃을 사용하게 됩니다. 혼자 쓸 때와는 어떻게 다른지 알아봅시다.

깃에는 브랜치가 있습니다. 저희는 계속 master(또는 main) 브랜치 한곳에서 작업을 해왔습니다.

이제 master 브랜치는 프로덕션에 배포할 준비가 된 상태만 올리도록 합니다. 그리고 master 브랜치에서 나온 dev 브랜치에서 개발을 합니다. 개발을 마치고, 프로덕션에 배포할 준비가 되면 master 브랜치와 합치게됩니다.
여기서 더 나아가서 dev 브랜치에서 기능별로 feature 브랜치를 빼서 개발하고 기능 개발이 완료되면 dev 브랜치에 합칩니다.

hot-fix 브랜치는 말 그래도 긴급하게 에러를 고치기 위해 만드는 브랜치입니다. 이 브랜치는 master 브랜치에서 바로 만들어서 프로덕션에서 생긴 이슈를 고치고 master 브랜치로 합쳐서 배포할 수 있도록 합니다.

release 브랜치는 dev 브랜치에서 생성합니다. dev 브랜치에서 feature 브랜치들을 만들어서 기능들을 모두 개발하고 합칩니다. 그 다음에 dev 브랜치에서 release 브랜치를 생성하고, 프로덕션을 출시하기 위해서 필요한 코드들만 덧붙이도록 합니다. 그 후 master 브랜치에 합칩니다. 또한 dev 브랜치에서는 release 브랜치를 합쳐서 최신 버전으로 유지합니다.

위의 브랜치를 이용한 과정들은 한 개의 저장소에서 이루어지는 것입니다. Git Fork Workflow는 저장소를 fork(복제) 해서 협업하는 작업 과정을 말합니다.

fork 합니다.
내 저장소에 잘 복사해 왔습니다.

fork 한 저장소를 내 컴퓨터에서 clone 합니다.
git clone origin 포크한_내_깃허브_주소
팀장의 저장소를 remote로 등록합니다. git remote add upstream 팀장의_깃허브_주소
새로 브랜치를 나눠서 개발을 진행합니다. 진행해 감에 따라 커밋과 푸시를 내 저장소에 합니다.
하나의 브랜치의 개발이 완료되면 내 저장소(origin)에서 팀장의 저장소(upstream)로 Pull Request를 보냅니다. 이것은 내가 개발한 코드를 합쳐달라고 요청하는 것입니다.

merge(병합)합니다. upstream의 최신 버전을 pull 합니다. git pull upstream