GitHub Flow 방식

Untitled

  1. Branch 생성
    1. 로컬(local) 저장소에서 개발을 수행할 branch를 생성하고 Checkout 한다.
    2. master(default) branch는 항상 최신 상태를 유지한다.
    3. 다른 이유가 없다면 master(default) branch에서 작업 branch를 분기 한다.
    4. Branch 이름을 통해 의도를 명확하게 한다.
  2. Development & Commit & Push
    1. 개발 진행 후 commit을 남긴다.
    2. commit 메시지는 명확하게 작성한다.
    3. 원격(remote) branch를 만들고 push 한다. (수시로 push를 진행)
    4. 이는 하드웨어에 문제가 발생해 작업하던 부분이 없어지더라도, 원격지에 있는 소스를 받아서 작업할 수 있도록 해준다.
  3. PR(Pull Request) 생성
    1. 피드백이나 도움이 필요할 때, 그리고 merge 준비가 완료되었을 때 PR을 생성한다.
    2. Pull Request는 코드 리뷰를 도와주는 시스템이다.
    3. GitHub에서 push된 작업 branch를 Pull Request 한다.
      • 원격(remote) branch가 생성되면 자동으로 Compare & pull request 버튼이 생성된다.
  4. Reviewers가 코드 리뷰를 진행
  5. 컨펌 내용 수정
    1. Review 받은 내용 수정 후 Resolve conversation
    2. git add 하기
    3. git commit --amend를 통해 최신 commit 덮어쓰기(하나의 commit만 생성)
    4. git push -f origin [branch-name] (force push를 통해서 강제로 push를 진행)
  6. 최종 Merge
    1. Reviewers는 master branch에 push한다.
  7. Merge한 이후 요청한 Branch는 삭제
    1. Close pull request 후 원격(remote) branch는 삭제한다.

IntelliJ를 이용한 GitHub Flow

  1. github 에서 issue 생성
    1. Assignees
    2. Labels
    3. Projects
  2. Intellij 에서 open tsck
    1. Clear current context (편집기에 열려 있는 모든 탭 닫기)
    2. Create changelist
    3. Create branch : (local) from (master)
  3. 작업
  4. commit
  5. pull request
    1. push를 진행할 origin branch는 Create Pull Request 진행 시 자동 생성 가능
    2. reviewer
    3. assignee
    4. label