- Git 레포지토리 생성 (ex. 레포지토리 이름 : Book_U_Luv)
- 팀원들 컨트리뷰터 / 콜라보레이션으로 팀원추가
- 각자 개인 브랜치 생성.(이름 이니셜 2글자로 예를들면 황인성 => is)
- 새로 만드는 프로젝트에 gitignore(JAVA, Intellij)잘 구성되어있는지 확인.
- 생성 후 기본세팅 마치고 팀원들은 각자 로컬저장소(개인 노트북 혹은 컴퓨터)에 clone으로 저장함.
⚠️개인 브랜치 내에서 작업 시에⚠️
(본인 말고 다른사람이 브랜치에 COMMIT / PUSH / REVERT 등 건드리지 않았다는 전제 하)
- 작업 시작 전(현재 본인 '원격' 브랜치에 체크아웃 함)
- 새로운 작업 시작하기 전에는 항상 '로컬' 브랜치 업데이트(ex. git pull origin is)를 해야함.(인텔리제이 상에서 GUI로 하는게 쉬움.)
- 작업을 마치면 본인의 브랜치로 commit/push함.
(ex. git commit -m "commit message")
(ex. git push origin is)- 푸쉬 잘 되었는지 확인 마치면 새로운 작업 시작하기 전에는 항상 업데이트(ex. git pull origin is)를 해야함.(인텔리제이 상에서 GUI로 하는게 쉬움.)
기능개발 시에 개인 브랜치 내에선 위 1~4 항목들의 무한반복.
⚠️main브랜치에 병합(merge)이 필요할 때엔⚠️
- 각자 개인 브랜치에 버전내용 최신화 확인.
- main 브랜치에 병합 할 목적이기 때문에 원격저장소의 main브랜치에 체크아웃(git checkout main) 후 main브랜치 업데이트(git pull origin main)
- 내 브랜치(is)에 있는 내용을 main 브랜치로 병합(git merge is)
- 다른 브랜치(ex. cg 혹은 wy)가 최신화 되어있다면 이 단계에서 main에 다른 브랜치들 추가로 병합 가능.
- 중간에 충돌(conflict)이 발생하면 병합 버튼을 눌러서 충돌(conflict) 해결
✔️모든 파일에 대하여 지울 코드 지우고 채택할 코드 채택해서 무조건 충돌사항(conflict)이 없게 만들어야 다음단계 진행 가능.
✔️main에서 병합 작업시에 내 변경사항과 상대방의 변경사항 중 수락하게 되는 경우,
내 변경사항 => 현재 main브랜치에 있는 내용.
상대방의 변경사항 => main브랜치 이외의 브랜치로부터 온 내용들.
✔️main의 내용과 새로 병합되는 개인브랜치의 내용 중 수정부분이 겹치지 않는다면 충돌이 나지 않으므로 정상적으로 진행하면 됨.- 현재 main은 로컬에서만 변경사항이 적용된 상태이기 때문에 원격 저장소로 push 해줘야함.(git push origin main)
- 병합 끝.
아주 유용한 정보네요!