728x90
반응형
00.글 쓴 의도
- 좀 의미 있게 프로젝트를 관리하고 싶은데 명확하게 해볼 기회가 많이 없었음
- 처음 프로젝트를 관리하는 입장에서 조금이나마 도움이 되면 좋을것 같다고 생각하여 글을 쓰게됨
01.프로젝트관리
- 프로젝트가 커져도, 사람 많아도 branch, merge 깔끔하게 하고 싶은 경우
- Git FLow
- Github Flow
- Trunk-based
- Gitlab Flow
02.GitFlow
02.1 Git Flow란?
- GitFlow에서 사용하는 브랜치
- main
- develop
- feature
- release
- hotfix
- 1.0버전에서 신기능이 들어갈때
- 현재 까지 만든것 main 이고 v0.9라고 할때
- 여기에 신기능의 코드짜서 Push 하면 안된다.
- 기본코드를 develop라는 것의 브랜치를 딴다.
- 여기에 개발을 하는데 여기에 신기능 추가
- 그렇게 되면 원본코드를 건들지 않기때문에 main은 안전함
- 그렇다고 develop브랜치에 바로 다이렉트로 푸시하지 않음
- feture라는 브랜치를 딴다. 거기에 신기능 같은 것을 개발을 하고 잘된다고 생각들면 devlop에 merger를 한다.
- 이름의 형식은 길드를 추가하는 경우라면
- feature/guild 라고 명명한다.
- 이름의 형식은 길드를 추가하는 경우라면
- develop자체가 만족스러워서 1.0으로 출시한다면
- 이때 상남자라면 메인에 다이렉트로 Push해도됨
- 하지만 불안하기 때문에 release브랜치를 만듦
- release브랜치에서는 테스트, QA를 진행하고 수정할것이 있으면 수정도 하면 된다.
- 그리고 만족 스럽다면 이때, main브랜치에 합치면됨
- 그리고 계속 개발이 되어야하기 때문에 이 release를 develop에 머지해놓는다.
- 유저가 버그를 발견한 경우
- 급한경우 hotfix라는 브랜치를 만ㄷ르어서 버그를 수정해서
- v1.0.1버전을 main과 develop로 머지한다.
- 급한경우 hotfix라는 브랜치를 만ㄷ르어서 버그를 수정해서
- 현재 까지 만든것 main 이고 v0.9라고 할때
02.2 장단점
- 장점: 안정적으로 버전별 배포가능
- 단점: CI/CD 하는곳은 안좋아함
- 그래서 상황에 맞게 변형해서 쓰면 좋음
03.Trunk-based
03.1 Trunk-based란?
- 브랜치 하나만 잘 관리하자
- main하나만 이용하고
- 기능이 필요하면 feature1, feature2 브랜치 따서 메인에 merge하는식으로 적용하는 것
- GitHub Flow도 이와 유사
- 그냥 master머지하고 테스트후에 바로 마스터를 배포하는것이 아니라 master에서 RC(릴리즈용)브랜치를 따서 그 브랜치를 테스트하고 문제없으면 RC2022.7.16 식으로 배포하는것
03.2 장단점
- 장점: 소스코드가 한곳에만 있어서 관리가 편함 복잡하지 않음
- 테스트나 배포 자동하는 곳에 쓰면 좋은 점이 있음
- 안정화된 프로젝트들이 잘씀
- 단점: 메인에 있는것 바로 유저한테 배포하기 때문에 더 많고 자주 테스트를 해야함
728x90
반응형
'github' 카테고리의 다른 글
22-03-27-깃블로그만들기 (0) | 2022.04.05 |
---|---|
22.02.27_맥북에소스트리설치후프로젝트관리하기 (0) | 2022.02.27 |
댓글