Conventions - EnvEduPNU/EnvEdu_Server GitHub Wiki

Branches

  • main : 실제로 작동하고 있는 버전, CI/CD 대상 브랜치
  • develop : 개발 단계에서 각 feature 브랜치가 합쳐지는 브랜치, 각 feature에서 날린 PR은 최소 한 명의 리뷰 후 merge 될 수 있음
  • feature : 각 기능 별로 생성하는 브랜치, develop에 merge 후 삭제, ex. feature/#{issue number}/{feature name}/{collaborator name}

Flow

  • 각 collaborator는 fork로 분기해 작업
  • 매주 금요일 develop 브랜치를 main 브랜치로 merge, 1주일 동안 자신이 진행할 개발 일정 backlog 작성 및 각 backlog 이슈에 해당하는 브랜치 생성
  • 매일 오후 9시에 collaborator는 feature 브랜치에서 develop 브랜치로 전송한 PR을 리뷰하고 승인하는 scrum 진행
  • develop 브랜치가 업데이트 되면 fetch-rebase 이용해 local 저장소 업데이트
  • 참고 : 참고

Commit

  • ex. #{issue number}-{type}/{commit message}
  • type
    • feat : 기능을 추가한 경우
    • style : 변수 이름 변경, 줄 간격 변경 등의 코드의 스타일을 변경하는 경우
    • fix : 버그를 수정한 경우
    • refactor : 리팩토링을 진행한 경우
    • test : 테스트 코드 작성 및 테스트 코드를 수정한 경우
    • rm : 파일을 제거한 경우
    • mv : 파일의 위치를 변경한 경우
    • env : 프로젝트 환경 설정과 관련된 경우
    • doc : 문서와 관련된 변경
    • add : 코드 또는 파일을 추가하는 경우
    • rn : 클래스, 파일 등의 이름을 변경하는 경우

PR

  • feature -> develop
    • title: feature 브랜치 이름
    • content:
      • 구현 및 수정한 기능 요약
      • 작업하며 발생했던 문제
      • 문제의 원인과 해결 방법
  • develop -> main
    • title: 현재 날짜(yyyy/mm/dd)
    • content: 추가 및 수정한 기능 - {담당자 username}
  • 편의상 local -> remote -> upstream 과정을 거치지 않고 local에서 바로 git push upstream ${branch_name} 으로 바로 upstream으로 push
    • 해당 명령어 수행 시 upstream에 동일한 이름의 브랜치 생성됨
    • 해당 방법을 통해 upstream github에 표시되는 불필요한 commit을 없앨 수 있음

Guide

  1. EnvEduPNU에서 본인 github으로 fork
  2. 본인 PC에서 git clone https://github.com/${본인 레포지토리}/${프로젝트}.git ex. git clone https://github.com/201724554/EnvEdu_Server.git
  3. 본인 PC에서 git add remote -t develop upstream https://github.com/EnvEduPNU/${프로젝트}.git
  4. 작업 시, EnvEduPNU의 프로젝트 레포지토리에 이슈 생성
  5. 로컬에서 main 브랜치에 위치한 상태로 git checkout -b feature/${생성한 이슈 번호}/${작업에 대한 간단한 묘사(CamelCase)/${본인 깃허브 아이디} 실행해 브랜치 생성
  6. 작업, 커밋 단위 크지 않게
  7. git push upstream ${생성한 브랜치 이름}
  8. PR 날리기(#PR 참고)
  9. 리뷰 후 develop 브랜치로 merge
  10. merge 완료 되면 로컬에서 git switch main 실행해 main 브랜치로 복귀
  11. git fetch upstream develop 실행해 develop 브랜치에 merge된 내용 가져오기
  12. git rebase upstream/develop으로 로컬의 develop 브랜치와 upstream develop 동기화
  13. git branch -D ${생성한 브랜치 이름}으로 작업 브랜치 제거
  14. 4로 이동해 반복