1단계. 누가 이 작업 할 것인지 정한다. - Issue
2단계. 각자 맡은 것을 작업한다. - Branch
3단계. 각자 작업을 프로젝트에 합친다. - merge
(경우에 따라). 작업한 내용을 리뷰하고 최종적으로 프로젝트에 반영한다. - PR 후 merge
issue 는 내가 할 작업, 기능 추가, 버그 리포트 등 여러 방식으로 사용가능
협업을 하기 위해 issue 를 만들어 누가 작업할지 정하고, 브랜치를 만들어 작업할 공간을 나누기
브랜치(branch)는 특정 commit 에서 갈라져나와 작업가능.
작업할 브랜치로 바꾸는 것을 체크아웃(checkout), 체크아웃된 브랜치에만 commit 이 반영
브랜치명은 규칙을 가지고 지어야 관리 용이.
작업이 완료되면 브랜치 설정이 꼬이는것을 방지하기 위해 작업한 브랜치는 보통 삭제.
각 작업 브랜치에서 작업할 때는 다른 브랜치의 영향을 받지 않고 독립적으로 작업가능.
Merge 하는 과정에서 같은 파일이 동일한 부분이 수정된 게 발견되면
Merge conflict(병합 충돌) 이 발생.
Git 이 똑똑하게 충돌을 파악할 수 있도록 파일 내용을 고쳐서 충돌 내역을 보여준다.
conflict 를 수정하려면 최종적으로 반영할 내역으로 고친 후에 merge commit.
tracking 한다는 것은 로컬 repo와 원격 repo의 특정 브랜치를 연결해주는 것