소개
bflow는 Beans GitFlow를 기반으로 한 크로스 플랫폼 CLI 도구입니다. 개발자의 현재 Git 브랜치를 자동으로 감지하고 컨텍스트에 맞는 옵션을 제시하여, 브랜치 생성, 병합, 태깅, PR 생성과 같은 모든 GitFlow 워크플로우를 자동으로 처리합니다. 이 도구는 개발자가 GitFlow의 복잡한 절차를 대화형 인터페이스나 비대화형 명령어를 통해 간편하게 관리할 수 있도록 돕습니다.
상세정보
브랜치 자동 감지 및 컨텍스트 메뉴
bflow는 현재 브랜치를 감지하고 다음과 같은 적절한 옵션을 제시합니다.
- develop 브랜치: feature, fix, chore, docs, refactor, release 시작
- 메인 브랜치 (main/master): hotfix fix 시작
- 작업 브랜치 (feature, fix 등): 해당 작업 마무리 또는 새 브랜치 시작
- release 브랜치: 릴리스 마무리, 릴리스 수정, 버전 업그레이드, develop 동기화
비대화형 CLI 지원
스크립트 및 자동화 도구와의 통합을 위해 모든 명령을 서브커맨드로 직접 호출할 수 있습니다.
- 시작 명령: bflow start feature –name <name>, bflow start release [–major | –minor]
- 마무리 명령: bflow finish [–breaking | –breaking=false], bflow finish –abort
- 릴리스 전용: bflow bump (패치 버전 업그레이드), bflow sync (release를 develop에 동기화)
Worktree 통합
각 작업 브랜치를 별도의 git worktree로 생성하여 독립적인 디렉토리에서 작업할 수 있도록 지원합니다. 기본적으로 비활성화되어 있으며, bflow worktree 명령으로 활성화할 수 있습니다.
저장소 초기화
저장소에서 처음으로 bflow를 실행하면 저장소 정책을 설정하는 대화형 초기화가 진행됩니다. 설정이 완료되면 .bflow/config 파일이 생성되며, 이 파일은 커밋하여 팀원들과 정책을 공유합니다.
수동으로 초기화하려면: bflow init
기본 브랜치 감지
bflow는 저장소의 기본 브랜치(main 또는 master)를 자동 감지합니다. 첫 실행 시 local이나 remote에 main 브랜치가 있으면 main을, 없으면 master를 기본값으로 선택하고 저장소 설정에 저장합니다.
기본 브랜치를 수동으로 변경하려면: git config bflow.branch.main master
이런 경우에 유용합니다
GitFlow 워크플로우를 팀 프로젝트에 도입했지만 브랜치 전략의 복잡성으로 어려움을 겪는 개발자에게 유용합니다. feature, fix, release, hotfix 등 다양한 브랜치 타입의 생성부터 PR 생성, 병합, 태깅까지 표준화된 절차를 자동화하여 실수를 줄이고 워크플로우의 일관성을 유지할 수 있습니다.
지원 환경·시스템 요구사항
bflow는 크로스 플랫폼 CLI 도구로, Windows, macOS, Linux에서 사용할 수 있습니다. Rust로 작성되어 있습니다.
- 필수: Git
- GitHub 저장소 사용 시: GitHub CLI (gh) – gh auth login으로 인증 필요
- Azure DevOps 저장소 사용 시: Azure CLI (az) 및 azure-devops 확장 – az login 또는 PAT로 인증 필요
호스팅 프로바이더는 origin 원격 URL에서 자동 감지됩니다. dev.azure.com 또는 *.visualstudio.com 원격은 Azure DevOps로, 그 외는 GitHub으로 인식됩니다. GitHub Enterprise 도메인 등에서 감지를 덮어쓰려면 git config bflow.hosting.provider github 또는 devops를 설정합니다.
최신 버전·업데이트
현재 버전은 3.5.0입니다. 최신 릴리스는 GitHub Releases 페이지에서 확인할 수 있습니다.
제한 사항·확인 사항
PR 완료 시 올바른 버튼(Squash 또는 Merge commit)을 선택해야 합니다. bflow는 PR 생성 시 어떤 완료 유형을 사용해야 하는지 안내 배너를 표시합니다. 잘못된 완료 유형이 감지되면 워크플로우가 중단됩니다.
릴리스 분기에서 bflow finish를 실행하기 전에 최신 RC 태그 이후의 커밋이 없어야 합니다. 스테이징 가드가 발동하면 bflow bump를 실행하여 새 태그를 생성해야 합니다.
시스템 요구사항
Git이 설치되어 있어야 합니다. GitHub 저장소를 사용할 경우 GitHub CLI (gh)가 필요하며, Azure DevOps 저장소를 사용할 경우 Azure CLI (az)와 azure-devops 확장이 필요합니다. 각 CLI는 해당 플랫폼에 인증되어 있어야 합니다.


