4.1 Git Flow vs GitHub Flow

약 5분

본문 듣기
읽기 설정

글자 크기

줄 간격

글꼴

4.1 Git Flow vs GitHub Flow

Git Flow

Git Flow는 Vincent Driessen이 제안한 브랜칭 모델로, 소프트웨어 개발 프로세스를 구조적으로 관리할 수 있는 방법입니다. 이 모델은 주로 대규모 프로젝트에서 사용되며, 본격적인 배포를 위해 명확한 기준을 가지고 있습니다. Git Flow는 다음과 같은 브랜치를 구성합니다:

  • master: 항상 배포 가능한 상태를 유지합니다.
  • develop: 새로운 기능의 개발이 이루어지는 브랜치입니다.
  • feature: 새로운 기능을 개발하기 위한 브랜치로, develop 브랜치에서 분기됩니다.
  • release: 배포 준비가 완료된 상태에서 테스트와 버그 수정을 위한 브랜치입니다.
  • hotfix: 이미 배포된 코드에서 긴급하게 수정이 필요한 경우 사용하는 브랜치입니다.

예제

프로젝트에서 새로운 기능을 개발하기 위해 feature 브랜치를 생성하고, 작업 후 develop 브랜치에 병합하는 과정은 다음과 같습니다:

  1. git checkout -b feature/my-new-feature
  2. 코드 작업 후 git add .git commit -m "Add new feature"
  3. git checkout develop
  4. git merge feature/my-new-feature

실습

실제 프로젝트에서 새로운 기능을 개발해 보세요. 각 명령어 실행 전후 상태를 확인합니다.

GitHub Flow

GitHub Flow는 GitHub에서 제안된 간단한 브랜칭 모델입니다. 이 흐름은 개발 프로세스를 간소화하여 자주 배포할 수 있도록 돕습니다. GitHub Flow는 보통 다음과 같은 단계를 포함합니다:

  1. main: 항상 배포할 수 있는 상태를 유지합니다.
  2. feature: 새로운 기능 개발 시 feature 브랜치를 생성합니다.

예제

GitHub Flow에서 feature 브랜치를 생성하고 작업 후 main 브랜치에 병합하는 과정은 다음과 같습니다:

  1. git checkout -b feature/my-new-feature
  2. 작업 후 git add .git commit -m "Add new feature"
  3. git checkout main
  4. git merge feature/my-new-feature

실습

GitHub Flow를 기반으로 간단한 프로젝트를 진행하며 명령어를 실습해 주세요.

Git Flow vs GitHub Flow 비교

Git Flow는 명확한 브랜칭 전략과 배포 준비 과정을 중시하는 반면, GitHub Flow는 간단하고 자주 배포할 수 있는 이점을 제공합니다. 대규모 프로젝트에서는 Git Flow가 적합하며, 소규모 및 개인 프로젝트에서는 GitHub Flow가 유용합니다.

협업을 위한 GitHub 사용

  1. 저장소 생성
  2. Commit 작성
  3. Branch 생성
  4. Branch 병합
  5. Conflict 해결
  6. GitHub Push
  7. Pull Request 생성
  8. Code Review
  9. Merge
  10. Release 생성
    이 과정들은 GitHub에서 효율적으로 협업할 수 있는 최적의 방법을 제공합니다.

실무에서 발생하는 실수와 해결 방법

  • 강제 Push: 팀원에게 영향을 줄 수 있으므로 피해야 합니다. --force 없이 Push하세요.
  • 잘못된 Merge: 변경 사항을 다시 확인하고, 필요할 경우 Revert하여 복구합니다.
  • Commit 취소: git reset을 사용하여 이전 상태로 되돌릴 수 있습니다.
  • Cherry-pick: 특정 Commit을 다른 Branch에 적용합니다.

이러한 실수들을 예방하고 대응하는 방법을 배우는 것이 중요한 포인트입니다.

댓글 0

댓글을 남기려면 로그인하세요.

아직 댓글이 없습니다. 첫 댓글을 남겨보세요.