프로젝트를 진행할때 git과 github를 이용해 관리를 하는 경우가 많다.
특히나 두 명이상 공동으로 진행하는 프로젝트라면 더더욱
git과 github의 차이가 뭔가요?
https://www.youtube.com/watch?v=YFNQwo7iTNc
설명하기 귀찮으니까 더 잘 설명하는 사람의 영상과 글을 보도록 하자
https://backlog.com/git-tutorial/kr/
누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog
누구나 쉽게 알 수 있는 Git에 입문하신 것을 환영합니다. Git을 사용해 버전 관리를 할 수 있도록 함께 공부해봅시다!
backlog.com
그럼 git을 이용해서 어떻게 프로젝트를 관리한다는 건가요?
바로 branch라는 녀석을 이용하면 됩니다.
그리고 branch를 사용하는 방법도 여러가지가 있는데 이를 브랜치 전략이라고도 합니다.
git branch [브랜치 이름] #로컬 브랜치 생성
git checkout [브랜치 이름] #브랜치 이동
git remote add [origin] [레포지토리 주소] # 원격 브랜치 연결
git clone [레포지토리 주소] #깃허브 리포지토리 복사
git add .*
git commit -m "커밋 메세지"
git push origin main
1. git-flow 전략
https://techblog.woowahan.com/2553/
우린 Git-flow를 사용하고 있어요 | 우아한형제들 기술블로그
{{item.name}} 안녕하세요. 우아한형제들 배민프론트개발팀에서 안드로이드 앱 개발을 하고 있는 나동호입니다. 오늘은 저희 안드로이드 파트에서 사용하고 있는 Git 브랜치 전략을 소개하려고 합
techblog.woowahan.com

git flow 전략은 진행중인 프로젝트를 5가지의 브랜치로 나눠 관리한다.
1. main (master) : 이미 완성된 출시가 가능한 브랜치
2. develop : 다음 버전을 개발하는 브랜치
3. feature : dev 브랜치에서 세부 기능을 개발하는 브랜치
4. release : 다음에 출시할 버전을 최종 준비하는 브랜치
5. hotfix : 출시 버전에서 발생한 버그를 긴급 수정 하는 브랜치
뭔가 기능을 추가하고 싶다면
1. main -> develop (현재 버전은 놔두고 개발을 진행할 브랜치 생성)
2. develop -> feature (세부 기능을 구현하는 브랜치 생성)
3. feature -> develop (각각 세부기능 구현 후 dev 브랜치에 merge)
4. develop -> release (release 브랜치 생성 후 다시 점검, 기능 추가 더 필요할 시 2,3 반복)
5. release -> main (출시해도 문제가 없을 시에 main 브랜치로 merge)
와 같은 과정을 겪는다.
2. github-flow 전략
git-flow의 복잡성이 github와는 어울리지 않다는 의견과 함께 나온 전략이다.
https://brownbears.tistory.com/603
[Git] 브랜치 전략 - Github flow
브랜치 전략이란? 브랜치 전략이란 여러 개발자가 1개의 저장소를 사용하는 환경에서 효과적으로 활용하기 위해 나온 개념입니다. 브랜치 생성, 병합 등의 git 구조를 활용해 보다 효율적으로 소
brownbears.tistory.com
gihub-flow에선 한 개의 main 만 관리한다.
뭔가 기능을 추가하고 싶다면 feature 브랜치 1개만 새로 추가하여 만든 후 다시 main 브랜치에 merge 하면 된다.
dev,release브랜치와 같은 준비단계없이 main 브랜치에 바로 merge를 하기 때문에 Pull Request에 신경을 써야한다.
3. gitlab -flow 전략
github-flow 전략은 너무 단순하다는 의견과 함께 나온 전략이다.
https://docs.gitlab.com/ee/topics/gitlab_flow.html
Introduction to GitLab Flow | GitLab
Documentation for GitLab Community Edition, GitLab Enterprise Edition, Omnibus GitLab, and GitLab Runner.
docs.gitlab.com
github flow에 존재하는 main - feature 브랜치 뿐 아니라
배포용 productions 브랜치와 production 브랜치에 올리기 전 테스트를 하거나 시간을 두고 반영하는 pre-production 브랜치가 추가됐다.
뭔가 기능을 추가하고 싶다면
1. github-flow처럼 main 브랜치에서 feature브랜치를 만들고 수정한다.
2. 출시 준비가 되었다면 pre-production 브랜치에서 통합 테스트 및 배포 전 시간을 가진다.
3. pre-production 브랜치에서 production 브랜치로 merge 한 후 출시한다.
사실 정해진 정답은 없다.
본인 프로젝트의 구조와 크기, 협업하는 인원에 따라 더 좋은 전략은 프로젝트 중간에라도 바뀔 수 있다.
'장고는 못말려' 카테고리의 다른 글
사지방에서 웹 백엔드 공부하기 #5 TestCase를 이용한 test code 작성 (0) | 2023.03.01 |
---|---|
사지방에서 웹 백엔드 공부하기 #3 CRON 사용법 (2) | 2023.02.20 |
사지방에서 웹 백엔드 공부하기 #2 Django REST API 설계 및 구현 (0) | 2023.02.19 |
사지방에서 웹 백엔드 공부하기 #1 개발환경 설정 (Goorm IDE) (2) | 2023.02.11 |
장고로 REST API 구현하기 - 4 (Serializer 응용) (3) | 2022.07.01 |