[GIT] CH3. 여러 명이 함께 Git으로 협업하기
본 포스팅은 [팀 개발을 위한 Git, GitHub 시작하기]의 내용을 참고하여 작성하였습니다.
이번 장 부터 브랜치 개념이 나옵니다. 드디어 협업!
CH3. 여러 명이 함께 Git으로 협업하기
CH3 목차
1. Git이 커밋을 관리하는 방식
2. 브랜치를 만든다(branch), 이동한다(checkout)
3. 브랜치를 병합한다(merge)
4. 충돌을 해결한다
5. 풀 리퀘스트(Pull request)
6. 릴리즈(release)
1. Git이 커밋을 관리하는 방식
교재에서는 브랜치의 개념을 그림을 통해 이해하기 쉽게 알려주고 있습니다.
가장 중요한 부분은 브랜치가 '포인터' 개념이라는 것입니다.
이 포인터 개념을 이해하면 브랜치의 원리가 되게 쉽게 이해가 됩니다.
2. 브랜치를 만든다(branch) 이동한다(checkout)
협업 프로세스는 이렇게 됩니다.
1. 협업자가 커밋을 올릴 브랜치를 각각 만든다
2. 자신이 만든 브랜치로 이동한다
3. 브랜치에 커밋을 올린다
4. 코딩이 완료되면 브랜치를 합친다
이 장에서는 이걸 소스트리에서 하는 방법을 실습합니다.
3. 브랜치를 병합한다(merge)
병합(Merge commit), 빨리감기(Fast-forward), 충돌(Conflict)
병합
A + AB => AB
빨리감기
A + A+ => A+
충돌
A- + A+ => A?
4. 충돌을 해결한다
충돌이 일어나면 해결하고 다시 커밋한다는 것만 알면 될 것 같습니다.
5. 풀 리퀘스트(Pull request)
충돌을 해결했다고 무작정 내 브랜치를 master 브랜치에 병합하는 것은 위험합니다.
master 브랜치에 완벽한 코드만 두자고 약속했다면 내가 이 브랜치에서 무엇을 바꾸었는지 협력자가 확인할 수 있는 과정을 거쳐야 할 것입니다.
특히나 신입으로 들어갈 제 입장에서 master 브랜치에 코드를 병합하기전에 사수 개발자의 허락을 거쳐야 할 겁니다.
이 때 필요한게 풀 리퀘스트입니다.
"A 브랜치로 B 브랜치를 병합해도 될까요? 수정사항은 이러이러 합니다" 이렇게 메시지를 보내주는 것이지요
이 장에서는 풀 리퀘스트를 소스트리에서 실습합니다
6. 릴리스(release)
태그를 붙여 릴리즈 하는 것 까지 실습합니다.
태그도 특정 커밋을 가리키는 포인터입니다. v1.0.0 같은 버전 태그를 붙이고 푸시를 마치면 릴리즈를 할 수 있습니다.
이번 장은 정신없이 따라하면서 공부했는데요 중요한 부분이라 여러번 반복해서 익숙해지도록 해야겠습니다.