Github Flow

Y39·2023년 3월 24일
0

Git Flow

  • branch를 나누어서 운영, 개발, 테스트를 진행
  • 변경된 코드가 문제가 없다고 여겨지면 branch를 합침
  • 장점: 문제가 있는 코드가 배포될 가능성이 낮다.
  • 단점: branch가 많아서 관리하기 힘들다. 개발 속도가 늦어질 수 있다. 빠른배포가 어렵다.

Github Flow

  • featuer brach를 이용해서 개발
  • push된 코드를 적용시킬 것인지 코드리뷰를 통해서 팀원들이 결정
  • push된 코드가 master에 합쳐질 때 테스트를 통과하지 못하면 rollback된다.
  • 장점
    • 빠른 피드백, 빠른 배포
    • 가볍고 간단한 협력 규칙
  • 단점
    • 체계성이 부족함
    • 큰 주기를 갖는 프로젝트와는 맞지 않음
    • master 브랜치에서 다양한 이슈가 생길 확률이 높아짐

작업 방식

git Repository

  • manager
    • repository 생성
    • setting-branch main 브랜치에 PR룰 적용
  • 개발자를 초대

Issues

manger:Issue 올리기

  • new Issue
    • 새로운 기능을 개발할 경우 Enhancement 라벨 선택
    • Asignees를 통해 특정 작업자 선택 가능

개발자: Issue 개발

  • 프로젝트를 가져오기

    • git clone 프로젝트 주소
  • 변경 사항 적용하기

    • git pull origin main
  • 브랜치 생성

    • git checkout -b enhancement/이슈번호
    • 라벨과 이슈번호를 통해서 branch 생성
  • 작업을 자주 commit

    • git add .; git commit -m "작업내용";
    • 반드시 변경 사항을 계속 확인
      • git pull origin main --rebase
  • 작업이 완료 되면 push

    • git push origin enhancement/1

    • push를 하고 나면 pull request 생성

    • close를 사용하여 자동 닫힘 설정을 해놓음

maniger: Review

  • Reject 하기
    • PR: Add your review를 통해서 리뷰를 남길 수 있다.
    • viewed를 체크해서 review 했음을 표시할 수 있음
    • comment를 통해 자세한 리뷰 남김
  • 리뷰가 끝났다면 reject || approve할 수 있다.
  • approve만 승인한다는 의미

개발자: reject 확인하기

  • 위의 단계를 반복하고 코드를 수정

manager: Approve

업로드중..

  • review를 끝내고 aprrove를 누름
  • 마지막으로 Merge pull request를 누르면 main에 병합
    • squash and merger가 메시지를 깨끗하게 보여줌(추천)

개발자: 마무리

  • enhancemaned/이슈번호 branch를 github에서 삭제
    • git branch -D enhancement/이슈번호
    • git fetch --prune
profile
System.out.print("Bold")

0개의 댓글