일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 백준
- 프로세스
- 브루트포스
- 구현
- 이진탐색
- Markdown
- 분할정복
- 적정 스레드
- 정수론
- 빌더패턴
- 회고
- g1gc
- 몬티홀
- 그리디
- 배열 돌리기1
- 그래프 탐색
- GarbageCollector
- 문제풀이
- springboot
- GC
- github
- BFS
- 그래프탐색
- deque
- Python
- 마크다운
- 면접복기
- Greedy
- Stack
- DP
- Today
- Total
FeelingXD
[Git] - Git 브랜치 전략 😸 본문
😸 Git 브랜치 전략
Git 을 통해 협업을 하게된다면 브랜치를 통해 작업을하고 병합 하는 과정을 겪게될것이다. 다양한 git 브랜치 전략에 대해 알아보자.
GIT FLOW - 깃 플로우
GIT FLOW - 간략한 설명
Git-flow에는 5가지 종류의 브랜치가 존재합니다. 항상 유지되는 메인 브랜치들(master, develop)과 일정 기간 동안만 유지되는 보조 브랜치들(feature, release, hotfix)이 있습니다.
- master : 제품으로 출시될 수 있는 브랜치
- develop : 다음 출시 버전을 개발하는 브랜치
- feature : 기능을 개발하는 브랜치
- release : 이번 출시 버전을 준비하는 브랜치
- hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치
문제점
GIT - flow 는 웹앱(web apps) 기반으로 작성하지 않았고 오히려 이전략이 불편 할 수있습니다. 다음과 같은 문제점들이 있습니다.
- 브랜치가 오래유지됨
- 브랜치 관리가 복잡함
GITHUB FLOW - 깃 허브 플로우
GIHUB FLOW -간략한 설명
깃플로우는 정석적이지만 많고 복잡한 브랜치 사용으로 상시 배포해야하는 환경에서는 익숙치 않았습니다. 이에 GITHUB FLOW는 간단한 브랜치 전략을 제공합니다.
master : 제품 브랜치
feature : 기능단위 의 브랜치
어떻게보면 TBD(Trunk based development)으로도 보일 수 있습니다.
심플한 브랜치 전략으로 더 상시 더자주 배포할 수 있게되었습니다.문제점
- 기능 A, B 가 병합되어야하는데 기능 A 가 B에 의존하고있다면 이는 A를 MAIN 머지를 대기해야하는 일이 발생하게됩니다.
- 트렁크기반 의 장점인 빠른 병합의 장점이 오히려 몇달동안 개발해야 할 기능이 생긴다면 미루어지는 일이 생기게 됩니다.
- 바로바로 main 에 병합되므로 충분히 테스트되지 못한 코드가 병합되어 배포되는 경우가 생길 수 있습니다.
GITLAB FLOW - 깃 랩 플로우
GITLAB FLOW - 간략한 설명
GITLAB FLOW 는 GIT FLOW 의 복잡함과 GITHUB FLOW의 단순함 그사이의 절충하는 FLOW이다.
사용되는 브랜치
- master(develop) : 다른 브랜치 전략의 develop 브랜치에 해당합니다. master로부터 feature 브랜치로 작업하고 다시 머지됩니다.
- feature : 기능단위의 작업이 진행되는 브랜치입니다.
- pre-production : 실제 배포전 테스트 하는 브랜치 입니다.
- production(main,maintanance) : 실제 서비스를 하는 브랜치 입니다.
SIM GIT FLOW - SIMPLE GIT FLOW
SIM GIT FLOW - 간략한 설명
다른 브랜치 전략들은 모두 feature가 순서대로 반영되어야하는 문제점이 있었습니다.
feature
-> dev
혹은 master
에 병합하고 production
으로 배포됨
이는 기능단위의 통합테스트를 목적으로는 장점이 되지만 항상 feature 등이 순서대로 반영되어야했습니다. simgit 은 각 독립적인 feature
들이 빠르게 realease 되는 방법을 제공합니다.
- master : 실제 서비스가 되는 브랜치
- release : 배포 대기를 위한 브랜치
- feature : 여러가지 단위의 기능이 작성되고 작성된 기능은 바로 release로 머지하여 배포준비를 합니다.
참고한 글
'프로그래밍' 카테고리의 다른 글
[Kotlin] - 코틀린 컴파일 과정 (0) | 2024.06.22 |
---|---|
[Docker] Docker 와 VM🐬 (0) | 2024.02.21 |
Λ - 람다 함수가 뭐에요? 🤔 (0) | 2024.02.05 |
객체 지향 프로그래밍 .md 👀 (0) | 2024.01.22 |