반응형
Branch 종류
기본 브랜치
- main/master branch
- 제품으로 출시될 수 있는 브랜치
- 항상 배포 가능한 상태를 유지하는 브랜치
- 주요 제품 릴리스 코드가 저장됨
- 주의할 부분 → 이 브랜치에서는 직접 커밋 지양, Pull Request를 통해 병합
개발 브랜치
- Develop 브랜치
- 새로운 기능 개발과 버그 수정을 통합하는 브랜치
- 각 기능 브랜치와 버그 수정 브랜치가 병합되는 곳
기능 브랜치
- Feature 브랜치
- 특정 기능이나 개선 작업을 위해 생성
- Develop 브랜치에서 분기하고 작업 완료 후 Develop에 병합
- 네이밍 예시 → feature/login-ui, feature/payment-gateway
핫픽스 브랜치
- Hotfix 브랜치
- 배포된 제품에서 발겨된 긴급 문제를 수정하기 위해 생성
- Main에서 분기하고 수정 후 Main과 Develop에 병합
- 네이밍 예시 → hotfix/login-bug, hotfix/payment-error
릴리스 브랜치
- Release 브랜치
- 배포 준비 단계에서 사용하는 브랜치
- 개발이 완료된 상태에서 최종 테스트 및 배포 관련 설정
- 네이밍 예시 → release/v1.0.0
버그 수정 브랜치
- Bugfix 브랜치
- 특정 버그를 수정하기 위해 생성
- Develop 브랜치에서 분기하고 완료 후 다시 Develop에 병합
- 네이밍 예시 → bugfix/signup/validation
브랜치 네이밍 규칙
네이밍 규칙 설정
- 일관성: 프로젝트 구성원 전체가 동일한 규칙을 따르도록 명확히 정의
- 간결성: 이름은 간결하면서도 의미를 명확히 전달해야함
- 구조화된 형식:
- 예시: feature/user-authentication, hotfix/critical-crash.
- [브랜치타입]/[작업내용 또는 이슈 번호]
브랜치 타입 Prefix
- feature: 새 기능 추가 작업
- hotfix: 긴급 문제 수정
- bugfix: 일반 버그 수정
- release: 릴리스 준비
- test: 테스트 용도
- refactor: 코드 리팩토링
- chore: 문서 작업이나 설정 변경 등 부수적인 작업
작업 내용 명시
- 작업 내용을 영어 소문자로 작성
- 단어는 ``(하이픈)으로 구분
- 예시
- feature/user-profile-update
- bugfix/fix-email-validation
이슈 트래커와 연동
- Git과 JIRA 또는 GitHub Issues를 연동한 경우, 이슈 번호를 포함
- 예시:
- feature/DS-1234-login-ui
- bugfix/GH-5678-fix-cart-error
네이밍 예시
브랜치 타입 네이밍 예시
Feature | feature/user-profile-page, feature/api-auth |
Bugfix | bugfix/DS-1023-null-pointer, bugfix/fix-dropdown |
Hotfix | hotfix/critical-payment-bug, hotfix/server-crash |
Release | release/v1.2.0, release/production-ready |
Refactor | refactor/optimize-db-queries, refactor/css-cleanup |
C언어로 각 브랜치들을 한 번 공부를 해보자!
Main 브랜치
- 브랜치이름 → main
- 배포 가능한 기본 상태의 코드
#include <stdio.h>
void main() {
printf("Welcome to the Application!\\n");
}
Develop 브랜치
- 브랜치 이름 → develop
- Main에서 분기하여 새로운 기능을 통합하고 테스트함
- Main 보다 한 단계 앞선 코드 상태 유지
#include <stdio.h>
void printWelcomeMessage() {
printf("Welcome to the Application!\\n");
}
void main() {
printWelcomeMessage();
}
Feature 브랜치
- 브랜치 이름 → feature/user-input
- 사용자 입력 기능 추가 작업
- Develop 브랜치에서 분기하여 작업하며, 작업 완료 후 Develop에 병합
#include <stdio.h>
void printWelcomeMessage() {
printf("Welcome to the Application!\\n");
}
void getUserInput() {
char name[50];
printf("Enter your name: ");
scanf("%49s", name);
printf("Hello, %s!\\n", name);
}
void main() {
printWelcomeMessage();
getUserInput();
}
Hotfix 브랜치
- 브랜치 이름 → hotfix/fix-buffer-overflow
- 긴급 수정하는 코드
- Main 브랜치에서 분기하여 긴급한 버그를 수정한 브랜치
- 수정된 코드는 Main과 Develop 브랜치에 병합
#include <stdio.h>
#include <string.h>
void printWelcomeMessage() {
printf("Welcome to the Application!\\n");
}
void getUserInput() {
char name[50];
printf("Enter your name: ");
if (scanf("%49s", name) != 1) {
printf("Error reading input. Please try again.\\n");
return;
}
printf("Hello, %s!\\n", name);
}
void main() {
printWelcomeMessage();
getUserInput();
}
Relase 브랜치
- 브랜치 이름 → release/v1.0.0
- 코드: 배포 준비 작업(버전 정보 추가)
- 배포 준비를 위해 릴리스 버전 정보를 추가하고 최종 테스트를 진행
- 작업 완료 후 Main 브랜치에 병합.
#include <stdio.h>
#define VERSION "1.0.0"
void printWelcomeMessage() {
printf("Welcome to the Application (Version: %s)!\\n", VERSION);
}
void getUserInput() {
char name[50];
printf("Enter your name: ");
scanf("%49s", name);
printf("Hello, %s!\\n", name);
}
void main() {
printWelcomeMessage();
getUserInput();
}
Bugfix 브랜치
- 브랜치 이름 → bugfix/input-error-handling
- 코드: 버그 수정(입력 오류 처리)
- Develop 브랜치에서 분기하여 버그를 수정하는 브랜치
- 작업 완료 후 Develop에 병합
#include <stdio.h>
#include <string.h>
void printWelcomeMessage() {
printf("Welcome to the Application!\\n");
}
void getUserInput() {
char name[50];
printf("Enter your name: ");
if (scanf("%49s", name) != 1) {
printf("Error reading input. Please try again.\\n");
return;
}
printf("Hello, %s!\\n", name);
}
void main() {
printWelcomeMessage();
getUserInput();
}
브랜치 네이밍 요약
브랜치 이름 설명
main | 배포 가능한 기본 상태 유지 |
develop | 기능 개발과 통합 |
feature/user-input | 사용자 입력 기능 추가 작업 |
hotfix/fix-buffer-overflow | 긴급한 버퍼 오버플로 수정 |
release/v1.0.0 | 배포 준비, 버전 정보 추가 |
bugfix/input-error-handling | 입력 오류 처리 버그 수정 |
브랜치 트리
도움받는 글
https://junjunrecord.tistory.com/131
https://minha0220.tistory.com/72
반응형