1. Git 협업 주요 흐름
- 팀장이 GitHub Repository를 생성하고 팀원을 Collaborator로 초대
- 초대받은 팀원은 수락을 하여 Repository 공유
- 공유받은 이휴 intelliJ에서 해당 Repository를 Clone하여 로컬에서 개발 시작
꼭 공유된 Repository를 써야하므로 팀원은 로컬에 따로 프로젝트를 만드는 것이 아니다. - 각자 로컬에서 개발 진행시 branch를 만들어서 개발 진행
지금까지 했던 형식은 main에서 개발하고 commit,push하는 형태였으나
팀 작업에서는 main에서 하지 않는다.
branch는 만들때 매번 이름을 지정해야 하는데 이름 지정하는 규칙은 팀내에서 정한다.
( 개발하려는 기능 이름으로 만드는 것을 권장한다 ) - 기능 개발을 완료했다면 해당 branch의 내용을 gitHub에 commit, push 진행
push 이후 gitHub에서 pull Request 작성
작성 내용은 어떤 기능을 개발했고 주의사항 같은 부분을 작성한다.
팀장은 pull request를 확인하여 merge 진행 ( 이 부분을 조심 )
merge는 해당 branch 내용을 main branch에 합치는 과정이다
merge 진행 후 해당 pull Request 삭제 - 팀장이 merge를 했다면 다른 팀원들은 각자 로컬에서 pull을 진행하여 통합된 코드로 업데이트
단, 본인이 현재 로컬에서 아직 개발중이라면 pull하지말고(pull 하는 순간 로컬은 삭제) 개발 완료 후 commit,push하고 팀장이 merge 완료한후 pull해야 한다. - 본인이 개발한 내용이 merge되고 pull을 완료했다면 새로운 기능 개발을 위해 새로운 branch 만들고 개발 진행하고 다하면 commit,push한다.
2. 주의사항
- merge는 팀장만 진행
- 동일한 파일을 두 명 이상 동시에 작업 금지
꼭 해야 한다면 서로 이야기 하고 진행할 것
3. 만들어보기
1. Spring boot Project 만들기
기존 만들던 방식대로 Project를 만들어놓는다.
2. GitHub에 올리기
3. Setting
Github에 Setting에 Collaborators에서 Add people을 지정한다.
이메일로도 초대할 수 있고 직접 닉네임으로도 초대 할 수 있다.
초대가 오는걸 확인 할 수 있다.
초대받고 본인 intelliJ에서 Clone받아야 한다.
Clone을 받는다.
구성원이 branch를 따고 pull Request를 보내고 merge가 됬다면 다시 main 에서 branch를 따서 추가기능을 개발한다.
CheckOut Branch = main에서 A라는 branch로 갈 때 CheckOut 이라고 한다 ( git 용어 )
CheckOut을 선택하지 않으면 branch는 만들어지고 main에서 개발되어지는 수 가 있다.
새로 만들어지고 확인하는 방법은 여러가지 지만 한가지는
Commit할 때 branch 이름이 뜨게 된다.
main으로 다시 나가라면 main을 우클릭후 Checkout하면 된다.
github에서 pull request를 작성해야 한다.
pull request를 보고 merge를 결정한다.
녹색 체크가 됬다면 충돌의 문제가 없다는 뜻이다.
Merge pull request를 진행한다.
branch 이름은 일회용으로 하는것이 좋다.
Merge가 됬다면 main으로 CheckOut을 하고 기존 branch는 삭제하는 것이 좋다.
main으로 branch된것을 확인후 update로 동기화시켜준다.
이후로는 위의 과정의 반복이다.