git

GitHub Flow

NiceKHJ 2024. 11. 10. 18:11

GitHub Flow는 GitHub에서 추천하는 간단하고 직관적인 브랜치 관리 전략 이다.

feature 브랜치를 통해 독립적으로 작업한 후 main(master) 브랜치에 병합(merge)하는 방식입니다. 주로 지속적인 배포와 변경이 자주 이루어지는 프로젝트에 적합하며 실수로 인해 작업 중 큰 문제가 발생했을 때 복구가 비교적 간단하다는 장점이 있습니다.

 

GitHub Flow 사용 순서

1. Main 브랜치 준비

  • GitHub Flow에서 Main(master) 브랜치는 항상 배포 가능한 상태로 유지해야된다.
  • 코드는 main 브랜치에 병합되기 전에 철저히 테스트되고 안정화되어야 합니다.

2. Feature 브랜치 생성하기

  • 새로운 기능을 개방하거나 버그를 수정할 때는 반드시 새로운 feature 브랜치를 생성합니다.
  • 브랜치 이름은 작업 내용을 쉽게 파악할 수 있도록 feature-기능이름 형식으로 작성하는것이 일반적입니다.
    git checkout -b feature-login
  • 이 브랜치에서 코드를 개발하고 필요한 작업을 진행합니다.

3. Feature 브랜치에서 작업하기

  • 필요한 코드를 작성하고 변경사항이 있으면 커밋합니다.
  • 변경한 파일을 선택적으로 add하여 커밋합니다.
    git add 변경한 파일경로
    git commit -m "로그인 기능 구현"
  • 작업이 완료되면 GitHub 원격 저장소에 푸시합니다.
    git push origin feature-login

4. Pull Request (PR) 생성하기

  • GitHub 웹 페이지로 이동하여 feature 브랜치에서 Pull Request를 생성합니다.
  • 이 단계에서 팀원들이 코드를 리뷰할 수 있으며 문제가 없으면 병합 준비가 완료됩니다.
  • PR 생성 시 작성한 내용의 작업에 대한 설명과 변경 사항을 명시하는 것이 좋습니다.

 

 

 

Pull requests -> New pull request -> base(main or master) <- compare(feature-내가 개발한 기능브랜치) ->

수정사항이 생기면 Create pull request 가 생김

Assignees(담당자) - 개발한 사람  즉 본인 클릭

Labels - 이슈 내용 / 팀원들과 상의해서 Edit labels 로 정하는게 좋다.

 

다 선택하면 밑에 Create pull request 클릭 

 

5. 코드 리뷰 및 병합 (merge)

  • 팀원들이 PR을 리뷰하고 피드백을 제공하거나 변경사항을 요청할 수 있습니다.
  • 모든 검토와 피드백이 완료되면 Merge Pull Request 버튼을 눌러 main 브랜치에 병합합니다.
  • 병합이 끝나면 사용한 feature 브랜치는 삭제할 수 있습니다.

 

6. Main(master) 브랜치에 병합 후 배포

  • main 브랜치에 병합되었으므로 코드가 안정화되고 배포될 준비가 되었다고 판단된다.
  • 실제 배포는 이 시점에 이루어질 수 있으며 main 브랜치 상태는 항상 안정적으로 유지해야합니다.

 

예시 사용 흐름

1. main 브랜치에서 새로운 기능을 개발하기 위해 feature-login 브랜치를 생성합니다.

git checkout -b feature-login

 

2. 코드를 작성한 후 커밋하고 푸시합니다.

git add .
git commit -m "로그인 기능 추가"
git push origin feature-login

 

3. GitHub에서 Pull Request를 생성하고 팀원들의 코드 리뷰를 요청합니다.

 

4. 팀원들이 리뷰를 완료한 후 문제가 없으면 PR을 병합합니다.

 

5. 필요에 따라 feature-login 브랜치는 삭제합니다.

git branch -d feature-login

 

GitHub Flow의 장점

  • 간단한 구조로 인해 초보자도 쉽게 사용할 수 있습니다.
  • 각 기능은 별도의 브랜치에서 독립적으로 개발되므로 안전하게 작업할 수 있습니다.
  • CI/CD와 연동이 쉬워 지속적인 배포가 가능합니다.

주의사항

  • 작업 전 최신 상태로 유지하기 위해 feature 브랜치를 생성하기 전 main 브랜치에서 git pull을 실행하는 습관이 필요합니다.
  • 작업 단위가 작고 명확할수록 충돌을 줄일 수 있으며 코드 리뷰도 수월해집니다.